Skip to content

Releases: samyeyo/LuaRT

LuaRT 2.1.0

11 Sep 20:10

Choose a tag to compare

LuaRT v2.1.0 (Sept 11 2025)

Highlights

  • New hardware modules : cpu, power, and wifi
  • New data serialization format modules : xml and yaml
  • Improved asynchronous Task operations and scheduling
  • ui module is no more integrated to desktop interpreters
  • Lua VM updated to 5.4.8
  • LuaRT binaries and setup files are now digitally signed
  • Various additions and bugfixes

Lua VM

  • Updated to Lua VM to 5.4.8

rtc

  • New: -L option to specify a new search path for Lua modules
  • Updated: Link only the correct module dll (either the static or dynamic version)
  • Fixed: static linking is more reliable now

LuaRT C API

  • New: lua_taskcount() function to get current total Tasks count
  • Updated: lua_pushtask() now returns the pointer to the newly created Task struct
  • Updated: lua_schedule() now returns a boolean value

sys module

  • New: Task.priority, Task.timeout and Task.expiredproperties
  • New: Task.pause() and Task.resume() methods
  • New sys.idleThreshold property to adjust the task scheduler cpu usage
  • Updated: waitall() now accepts to wait on the provided Tasks and gathers all results
  • Updated: Improved Task scheduler with faster Task switching and lower CPU charge
  • Fixed: Errors in Task are now correctly propagated when waiting
  • Fixed: Getting an integer value from a sys.COM property or method won't crash anymore

module

  • New cpu module to get CPU information and manage process priority.
  • Various CPU properties cpu.usage, cpu.cores, cpu.threads, cpu.name, cpu.vendor, cpu.clock, cpu.currentclock, cpu.features, cpu.priority and cpu.cache
  • New cpu:prefetch() method to prefetch a Lua string into the cache.

power module

  • New power module to manage power state and battery information.
  • Power information properties with power.battery, power.plugged
  • Various functions to manage power mode : power:hibernate(), power:sleep(), power:hold(), power:unhold() and power:displayoff()
  • Power events power.onPlugged(), power.onSuspend(), power.onResume() and power.onBatteryLow()

wifi module

  • wifi:scan() method to scan for available Wi-Fi networks.
  • wifi:connect() and wifi:disconnect() methods to manage Wi-Fi connections.
  • Various Wi-Fi network properties : wifi.name , wifi.connected, wifi.quality, wifi.mac and wifi.channel
  • wifi.onConnected() and wifi.onDisconnected() events.

xml module

  • New xml module to parse and write XML strings and files.
  • New xml.Node object to manipulate XML nodes.
  • xml.encode() method to encode a string to xml.Node.
  • xml.load() and xml.save() methods for loading/saving xml.Node from/to file.

yaml module

  • New yaml module to convert YAML form/to Lua tables
  • yaml.decode() and yaml.encode() methods for YAML strings.
  • yaml.load() and yaml.save() methods for YAML files.
  • Support for placeholder substitution with {{variable}} syntax.
  • yaml.null readonly property to represent a YAML null value.

net module

  • New: net.urlencode() method to encode a string as a valid URL
  • Updated: Socket.recv() now returns a Buffer object instead of a string

json module

  • Fixed: json.load() now closes the file correctly

serial module

  • Fixed: Port.rts property now accepts `"on"`` value
  • Fixed: Port.bytesize now returns the correct value
  • Fixed: Port.write(), Port.read() and Port.readline() won't crash anymore

webview module

  • Updated: Webview module updated to support new standalone ui module

canvas module

  • New: Canvas.capture() method to save a snapshot of the Canvas
  • Updated: Canvas module updated to support new standalone ui module
  • Fixed: Canvas mouse events are now fired correctly
  • Fixed: Canvas:onPaint() event will keep throwing even if the parent window shows/hides

ui module

  • New: ui.task and ui.mainWindow properties
  • Updated: ui module is now standalone
  • Updated: ui module now throws a Task to update the event loop constantly
  • Updated: ui.run() is deprecated and will be removed (replaced by ui.mainWindow and ui.task)
  • Fixed: Better ui responsiveness
  • Fixed: Picture.save() method now uses the correct format from file extension
  • Fixed: Sizes of widgets are now fixed when the text is empty
  • Fixed: Checking a Checkbox widget won't draw a selection rect anymore
  • Fixed: ui.info(), ui.warn(), ui.confirm() and ui.msg() now put the owner Window to modal state

πŸ›‘οΈ VirusTotal detection
LuaRT-v2.1.0-x64.zip
LuaRT-v2.1.0-x86.zip

πŸ”’ Minisign public key RWRK6uteH2/OgTJtsry5+VODe6I8693ywMtm+MkYNvT7kge2W/CyWQdF

If you ❀️ LuaRT, don't forget to put a ⭐ on the GitHub repository !

LuaRT 2.0.1

08 Jun 11:14

Choose a tag to compare

LuaRT v2.0.1 (June 08 2025)

Highlights

  • Bugfix release for LuaRT 2.0.0
  • New onThemeChange method for Window and Webview widgets

RTBuilder

  • Fixed some ui glitches, but the problem may still occur at times (still investigating)
  • Fixed various themes related bugs
  • Fixed Window loading bug
  • Fixed cursor property bug
  • Fixed widget name bug with non authorized characters

net module

  • Http requests with 204 status code won't return an error anymore

serial module

  • Fixed: Writing to serial port won't crash anymore

ui module

  • New: Window:onThemeChange() event when the Windows theme have been changed
  • Fixed: Events for Window maximize/restore/minimize are now fired as expected
  • Fixed: "raw" styled Window not returns correct width and height values
  • Fixed: Windows graphical bugs when switching themes have been fixed
  • Updated Notepad.wlua example with the new onThemeChange() event
  • Fixed: Window.childs property won't crash anymore
  • Fixed: notepad.wlua example to take in count Windows theme changes

webview module

  • New: Webview:onThemeChange() event when the Windows theme have been changed
  • Updated YouTube.wlua example to take in count Windows theme changes

πŸ›‘οΈ VirusTotal detection
LuaRT-v2.0.0-x64.zip
LuaRT-v2.0.0-x86.zip

πŸ”’ Minisign public key RWRK6uteH2/OgTJtsry5+VODe6I8693ywMtm+MkYNvT7kge2W/CyWQdF

If you ❀️ LuaRT, don't forget to put a ⭐ on the GitHub repository !

LuaRT 2.0.0

11 May 09:02

Choose a tag to compare

LuaRT v2.0.0 (May 10 2025)

Highlights

  • Static compilation : no more lua54.dll dependency even with Lua binary modules
  • New serial module for asynchronous serial communications
  • Various community reported suggestions and bug fixes

LuaRT C API

  • New lua54-static.lib to build static Lua 5.4 binary modules without lua54.dll dependency
  • New RTSTATIC define for static compilation
  • Updated: lua_toBuffer() renamed to lua_pushBuffer()

LuaRT interpreters

  • luart-static and wluart-static interpreters can now load static binary modules suffixed by -static.dll
  • luart-static and wluart-static interpreters don't include net and crypto modules anymore

RTBuilder

  • Fixed: Putting a Canvas or Webview widget inside a Panel won't crash RTBuilder anymore

rtc

  • New: sys.File() and sys.Directory now uses embedded files and directories first for compiled scripts.
  • Updated: static compiled executables can now embed and load Lua binary modules (linked with lua54-static.lib and suffixed by -static.dll)
  • Updated: rtc now displays more information during compilation
  • Updated: wrtc now supports static linking of binary modules
  • Updated: static compiled executables can now load Lua 5.4 binary modules suffixed by -static.dll
  • Updated: arg[0] now contains the current executable fullpath for compiled scripts
  • Fixed: sys.File() won't crash anymore for embedded files

serial module

  • New module for serial communications
  • New Port object supporting asynchronous COM ports operations with Tasks, and fine control for baud rate, parity, stop bits, etc.

embed module

  • New: embed.Directory object to access directories from embedded content

sys module

  • New: COM object can now be indexed by any of its constant values
  • Updated: sys\word.lua example updated with the new COM object constants indexing
  • Fixed: Pipe:read() won't wait indefinitely if the running process exits
  • Fixed: Datetime:interval() now returns correctly rounded values
  • Fixed: Setting Datetime properties now updates/normalizes correctly its internal date/time representation

compression module

  • Fixed: Zip.async.extract() works now correctly
  • Fixed: Zip entries now can use either \ or / separator characters for paths
  • Fixed: Zip:extract() won't fail anymore when extracting directories

console module

  • New: console:show() and console:hide() methods
  • New: console.visible property
  • Updated: console.read() argument is now optional, defaulting to 1

C module

  • Updated: Struct can now use multidimensional array members in signature
  • Fixed: C.Library() now can load embedded DLL files as expected
  • Fixed: Struct values can now be initialized with another Struct value
  • Fixed: Any Lua C Object can now be used as C pointer

net module

  • New: Http:patch()method for PATCH HTTP requests
  • Updated: Http:put(), Http:delete() and Http:patch() now takes a second parameter to set the body content of the request
  • Updated: sys.Buffer can now be used to set HTTP requests body content

sysutils module

  • Fixed: sysutils.user won't include a terminal \0 character anymore
  • Updated: sysutils.shellexec() now waits for the child process to terminate before returning

ui module

  • Updated: ui.theme value now changes when the user changes the Windows theme setting
  • Updated: Button.hastext property now remembers last Button size
  • Updated: Mouse events will now have their x,y mouse position corrected with current DPI
  • Fixed: Windows can now be closed using ALT+F4
  • Fixed: Tab widget now draws correctly when changing Tab font properties
  • Fixed: Groupbox now draws correctly and adapts to the parent background color
  • Fixed: Button size is now correct when setting a button icon
  • Fixed: Widget.font property changes now the Widget font as expected
  • Fixed: Changing Edit width will now adapt the text input area

canvas module

  • New Image:drawsub() method to draw a part of an image with new example subimage.wlua
  • New Canvas:onMouseWheel() event for detecting mouse wheel rotation
  • Fixed: Canvas:measure() won't leak memory anymore

webview module

  • Updated: URL starting by "file:///" now search the resource on the current directory, and if not found, search in the embedded content
  • Updated: Webview.cdp property is now read/write, allowing to set a Chrome DevTools Protocol callback function for events
  • New: Webview\Chrome DevTools Protocol\event.wlua example
  • Fixed: Webview:show(), Webview:hide() and Webview.visible now update Webview state correctly

πŸ›‘οΈ VirusTotal detection
LuaRT-v2.0.0-x64.zip
LuaRT-v2.0.0-x86.zip

πŸ”’ Minisign public key RWRK6uteH2/OgTJtsry5+VODe6I8693ywMtm+MkYNvT7kge2W/CyWQdF

If you ❀️ LuaRT, don't forget to put a ⭐ on the GitHub repository !

LuaRT 1.9.5

16 Mar 21:39

Choose a tag to compare

LuaRT v1.9.5 (March 16 2025)

Highlights

  • Bugfix release for LuaRT 1.9.0 with some user requested updates
  • Completely rewritten Webview widget, with ability to set options, to use Chrome DevTools Protocol and printing support
  • Updated dependencies for less bugs (miniaudio, miniz and Kuba zip library)

rtc

  • Updated: rtc now supports submodules linking and requiring from the generated executable

QuickRT

  • Fixed: Indentation for structured statements works now as expected

C module

  • New: C.Library() now can load embedded DLL files
  • Fixed: size_t should now be correctly handled
  • Fixed: Struct can now be passed as C function argument by value
  • Fixed: C functions can now return lightuserdata to be used as Struct contructor parameter

sys module

  • Updated: Pipe.read() now take an optional delay parameter to wait for before starting reading
  • Updated: String conversion from Buffer now provides the full buffer (with its entire size) as a string
  • Fixed: Buffer won't over-read anymore with "base64" encoding (Fixes #242)
  • Fixed: Pipe:read() won't enter an infinite loop anymore if the process is terminated, but will return nil instead (Fixes #241)

compression module

  • Updated: miniz updated to 3.0.2 with lots of bug fixes
  • Updated: kuba zip library to 0.3.3 with lots of bug fixes
  • Zip compression/decompression is now less prone to bugs

sqlite module

  • Fixed: removed debugging console output in Database.query() and Database.exec()

json module

  • Fixed: json.encode() function now escapes double quoted strings correctly

audio module

  • Updated: audio module now uses latest miniaudio v0.11.22
  • Updated: record.start() won't throw an error anymore, and will now return a boolean value indicating if the operation succeeded or not

ui module

  • Fixed: ui module won't consume too much CPU time now (Fixes #243)
  • New: Window.startmoving() method to initiate a drag and move operation (even for "raw" windows)

webview module

  • New Webview.cdp property for Chrome DevTools Protocol support
  • New Webview.print() and Webview.printPDF() methods to print Webview content
  • Updated: Webview.eval() now returns two values : a boolean indicating if the operation succeeded and the result as a JSON string
  • Updated: Full rewrite of Webview widget
  • Updated: Webview constructor now takes a table as second argument instead of a string, to set url and options

πŸ›‘οΈ VirusTotal detection
LuaRT-v1.9.5-x64.zip
LuaRT-v1.9.5-x86.zip

πŸ”’ Minisign public key RWRK6uteH2/OgTJtsry5+VODe6I8693ywMtm+MkYNvT7kge2W/CyWQdF

If you ❀️ LuaRT, don't forget to put a ⭐ on the GitHub repository !

LuaRT 1.9.0

30 Jan 07:50

Choose a tag to compare

Highlights

  • New C module for C FFI (foreign functions interface)
  • New keyboard module to read or send keys
  • New sysutils module for various Windows functionalities, including Process launch and control
  • LuaRT now uses the latest Lua 5.4.7 VM
  • Drag and drop operations are now implemented in desktop applications (text and file list format)
  • Better Windows clipboard support (text and file list format)
  • Record sounds with various encodings in audio module
  • Compiled executables with rtc can now embed and use DLL dependencies seamlessly
  • Faster Tasks scheduling
  • Faster canvas module with lots of bugfixes

LuaRT interpreter

  • Console luart.exe and desktop wluart.exe interpreters now use latest Lua 5.4.7 VM

LuaRT Studio

  • Updated: LuaRT Studio is now using the LuaRT 1.9.0 toolchain
  • Fixed: Task function can now be debugged (Fixes #237)

rtc

  • New: sys.File() constructor now checks for files embedded in the compiled executable if they do not exist
  • Updated: DLL binary modules dependencies are now resolved transparently in the embedded content
  • Fixed: sleep() now waits for the provided delay to elapse in compiled executables (Fixes #226)

QuickRT

  • New: QuickRT uses now an asynchronous loop, to use Task instances and any other asynchronous functions
  • Fixed: Objets are now correctly pretty printed (Fixes #221)

RTBuilder

LuaRT C API

  • New: lua_wait() to wait for a Task to finish from the C side
  • New: lua_throwevent() to launch a new ui event when implementing third party widgets
  • New: lua_update() to set an update C function during Task scheduling
  • Updated: lua_pushTask() now push a Task with the provided continuation C function and starts it, with a context and optional cleanup lua_CFunction

C module

  • New C module for foreign functions interface (FFI)
  • Still a work in progress (bugs may occur)
  • Call C functions directly from Lua using Library object and functions prototypes definition
  • Define C data structures with Struct and Union objects
  • Automatic type conversion between Lua and C types with Value object
  • Manipulate C pointers with the Pointer object
  • Use C arrays as if you were using Lua tables with the Array object

sysutils module

  • New sysutils module that provides various system utility functions and properties
  • New Process object to start and manage a new process

keyboard module

  • New keyboard module with keyboard management functions and properties
  • Get keyboard status, wait for keypress asynchronously, bind Lua functions to key presses
  • Send virtual key presses to any Windows application

debug module

  • New debug.settaskhook() function to set debug hook for all new Tasks

string module

  • New: string.normalize() function to replace accentued characters by non accentued ones in a string

sys module

  • New: Buffer.encoding property to specify an encoding value, to be used when converting the Buffer to a string
  • New: sys.locale property to get/set current locale for Datetime format and error messages from sys.error and net.error
  • New: COM objects now support calling items-like properties to access sub items (as Range, Cells and so on...)
  • New: File:copytask() and Directory:copytask() methods to copy files and directories asynchronously (without blocking)
  • Updated: sys.clipboard property now returns the kind of clipboard data and its content
  • Updated: File:copy() and Directory:copy() now returns a booleanvalue indicating if the operation succeeded or not
  • Updated: Pipe:read() now returns both stderr and stdout output (Pipe:readerror() have been removed)
  • Fixed: Task.after is now called even if the Task returns no result (Fixes #233)
  • Fixed: Task switching is now faster (Fixes #210)
  • Fixed: Task objects don't cause memory leaks anymore (Fixes #209)
  • Fixed: errors thrown inside a running Task don't cause a PANIC: unprotected error in call to Lua API error anymore (Fixes #228)
  • Fixed: COM objects methods now uses more than one argument (Fixes #205)

console module

  • Fixed: Using an unknown color with console.bgcolor, console.color, console.clear() and console.writecolor() won't crash anymore (Fixes #211)
  • Fixed: Console.x and Console.y properties now return a correct cursor position (Fixes #212)

compression module

  • New: Zip.async.extractall() and Zip.async.extract() to extract ZIP archives asynchronously

crypto module

  • Fixed : Cipher.constructor() won't crash anymore if the mode parameter is invalid

net module

  • New: property Http.content to get the current response content

ini module

  • Updated : INI property names and values are now trimmed

json module

  • Fixed : JSON numbers are now correctly parsed (Fixes #217)
  • Fixed : json.decode() don't unescape escaped characters from json strings (Fixes #227)

webview module

  • New : Webview.useragent property to get/set the user agent string

sqlite module

  • Fixed : module functions query() and exec() now set column values correctly (Fixes #234)

canvas module

  • New: canvas:onMouseDown(), canvas:onMouseUp() events
  • Updated : Changing canvas.bgcolor() don't clears the canvas anymore
  • Updated : canvas.begin() and canvas.flip() are now required before and after drawing content in event and Tasks.
  • Updated: canvas.onPaint() event is now called constantly, providing faster drawing operations
  • Updated: Image.draw() and Image.drawrect() now accept an image interpolation mode argument
  • Removed: canvas.sync property have been removed
  • Removed : canvas.map() function has been removed
  • Removed : canvas.onLeave() event has been removed
  • Fixed: Canvas dpi support don't use wrong pixel coordinates anymore but DIP instead (Fixes #224)
  • Fixed: Canvas rendering is now way faster (Fixes #207)
  • Fixed: Canvas widget don't blinks anymore when parent Windows goes fullscreen (Fixes #206)
  • Fixed: LinearGradient, RadialGradient and Image objects are now drawn correctly when the Canvas is resized
  • Fixed: Canvas:fillrect()and Canvas:fillroundrect() won't crash anymore if the brush parameter is omitted (Fixes #236)

audio module

  • New: audio.playdevice and audio.recdevice properties to set/get the current playback and record devices
  • New: audio.devices property to enumerate audio devices
  • New: audio.record.start() and audio.record.stop() methods to record and encode audio
  • Updated: Sound.play() now returns a Task that will complete once the sound has finished playing.
  • Removed: audio.device property have been removed.

ui module

  • New: Window.notify() to send Windows toast notifications
  • New: ui.drag() function to start a drag and drop operation
  • New: allowdrop property to set the widget as a drop target
  • New: onDrop() event, thrown when the user dropped the mouse on the widget
  • New: Edit.hscroll() and Edit.vscroll() horizontal and vertical scrolling functions
  • New: Edit.mousepos property to get the nearest character position from the current mouse screen coordinates
  • New: ui.selectdir() uses the previous shell directory selection dialog
  • Removed: Edit.scroll() method have been removed (replaced by the vscroll() and hscroll() methods)
  • Updated: GUI events are now thrown asynchronously as Tasks
  • Updated: ui events responsiveness have been increased (as seen in the examples\ui\balls.wlua)
  • Updated: ui.dirdialog() now uses modern folder selection dialog
  • Updated: onHover() events now provides a third argument for mouse button status
  • Updated: cursor property now can be set/can return nil in case no cursor is displayed
  • Fixed: GUI won't freeze anymore when calling sleep() inside an event handler (Fixes #232)
  • Fixed : Panel:onLeave() event if now thrown as expected (Fixes #231)
  • Fixed : Edit.cursor now changes the cursor as expected (Fixes #228)
  • Fixed : Groupbox.parent property now returns Tab intead of TabItem (Fixes #225)
  • Fixed: ui.opendialog() and ui.savedialog() don't uses old Windows 3.1 theme anymore (Fixes #223)
  • Fixed: Calendar widget now supports dark mode (Fixes #218)
  • Fixed: Combobox won't draw white background in dark mode anymore (Fixes #202)
  • Fixed: Using Entry widget in dark mode won't crash application anymore (Fixes #201)
  • Fixed: Picture.resize() now works as expected (Fixed #213)
  • Fixed: Label.textalign property now is respected when Label text is changed (Fixes #208)

πŸ›‘οΈ VirusTotal detection
LuaRT-v1.9.0-x64.zip
LuaRT-v1.9.0-x86.zip

πŸ”’ Minisign public key RWRK6uteH2/OgTJtsry5+VODe6I8693ywMtm+MkYNvT7kge2W/CyWQdF

If you ❀️ LuaRT, don't forget to put a ⭐ on the GitHub repository !

LuaRT 1.8.0

15 May 20:10

Choose a tag to compare

LuaRT v1.8.0 (May 15 2024)

⚠️ May 21 Update : Binaries have been updated to fix dark theme bugs that prevent LuaRT installation on Windows 10 prior 17763

Highlights

  • ❗ Warning : Windows versions older than 8.1 are no more supported
  • This release focuses on the ui module, bringing modern Desktop Windows functionnalities :
    • Windows dark and light themes (requires Windows 10+)
    • Theme switching depends on Windows system setting, and can be changed programmatically during runtime
    • Seamless HighDPI support
    • Widgets are now double buffered better user experience
    • Parent widgets/windows can now list all their childs widgets
    • Monitors enumeration

LuaRT interpreter

  • Updated: The Runtime error window when an error occurs with wluart.exe now uses the current Windows theme

LuaRT Studio

  • New: Theme selection is now available in the new Edit\Preferences\Theme menu
  • New: DarkDefault and LightDefault themes
  • Fixed: Themes now applies to the left pane too (Projects/Symbols)
  • Fixed: Better dark mode autodetection for Windows 10/11

rtc

  • Updated: wrtc has been updated to support HighDPI
  • Updated: When requiring for an embedded Lua or binary modules, rtc now uses package.path and package.cpath to conform to Lua search path
  • Fixed: Changing executable icon with -i option updates immediately in Windows explorer

RTBuilder

  • New: Option to switch to dark/light theme

LuaRT C API

  • New: lua_uigetinfo() to get current dpi and theme
  • New: luaL_checkDirname() to get the fullpath of a Directory object on the stack
  • New: lua_regparentwidget() and lua_regparentwidgetmt() to register parent widgets

LuaRT documentation

  • Fixed: ui.rtl documentation is now available
  • Updated: now the documentation contains all new LuaRT 1.8.0 changes

sys module

  • Fixed: sys.cmd() now returns false if the command fails (fixes #187)

string module

  • New: string.split() function to split a string in substrings using a separator

canvas module

  • New: Canvas widget updated to support double buffering and HighDPI

webview module

  • New: New event Webview.onFullScreenChange() when the current HTML page ask for fullscreen switch
  • New: Webview can now access "file:///" resources from embedded content if available

ui module

  • New: Window and other widgets now supports HighDPI (runtime change of DPI not yet supported)
  • New: Widgets now uses double buffering
  • New ui.dpi property that returns current dpi scale
  • New ui.theme and ui.systheme properties for dark/light Windows themes management
  • New ui.monitors property to retrieve the list of current connected displays
  • New ui.windows property to get a list of all created Windows
  • New Window.transparency property to get/set Window's degree of transparency
  • New Window.monitor property to get the monitor on which the Window is located
  • New Window.parent to retrieve the parent Window
  • New Window.childs, Groupbox.childs, TabItem.childs and Panel.childs properties to get a list of childs widgets
  • New Edit.border, List.border and Tree.border properties to show/hide the widget's border
  • New Edit.scroll() method to scroll the Edit content vertically
  • New: Tree.readonly property to prevent any TreeItem editing by the user
  • Updated: Resizing Picture widget now uses cubic interpolation for better image quality
  • Updated : Widgets position and size properties now take count of the current DPI scale
  • Fixed: Combobox.tooltip property now shows its tooltip as expected (Fixes #179)
  • Fixed: Picture:load() now uses correct parameter for the height argument (Fixes #185)
  • Fixed: Edit.selection.visible now shows/hides selection as expected

πŸ“‹ VirusTotal detection for LuaRT-v1.8.0-x64.zip
πŸ“‹ VirusTotal detection for LuaRT-v1.8.0-x86.zip

πŸ”’ Minisign public key RWQePKEZPWae5LOhoGMWSH8l3tbnk1lG9Lxufdu6wSk3oxyiPzYdvylF

If you ❀️ LuaRT, don't forget to put a ⭐ on the GitHub repository !

LuaRT 1.7.1 (Bugfix)

26 Jan 22:30

Choose a tag to compare

LuaRT v1.7.1 Bugfix release (Jan 26 2024)

LuaRT interpreter

  • Updated: Now LuaRT uses an arg table implementation closer to PUC Lua :
  • arg[2] => command line argument at position 2
  • arg[1] => command line argument at position 1
  • arg[0] => The executing script path (or nil in case of a compiled executable)
  • arg[-1] => The current executable ("luart.exe", "wluart.exe", or the compiled executable file)
  • Fixed: Errors from command line switch -e are now thrown as expected (Fixes #176)

LuaRT Updater

  • Fixed: LuaRT Updater now downloads updates correctly (Fixes #168)

LuaRT Studio

  • Fixed: Running scripts with arguments now set the arg table correctly

QuickRT

  • Fixed: Can't change values of a global variable defined in another environment (using loadfile() for example)
  • Fixed: QuickRT exits when printing custom userdata

rtc

  • Fixed: wrtc error message "no input file" fixed (Fixes #172)
  • Updated: rtc now use LuaRT 1.7.1 arg table

RTBuilder

  • Fixed: RTBuilder won't crash anymore when changing current Window name
  • Fixed: Shortcuts CTRL+O and CTRL+S work now as expected
  • Fixed: Changing the Tab.selected property in inspector shows the selected TabItem
  • Fixed: Assigning icon to TreeItem now works as expected
  • Updated: Setting an icon in the TreeItems editor will switch the Tree.style property to "icons" in inspector window
  • Updated: RTBuilder now uses LuaRT 1.7.1 arg table
  • Updated: RTBuilder windows are not topmost anymore

LuaRT documentation

  • Updated: now the documentation contains all new LuaRT 1.7.1 changes

sys module

  • Fixed: Calling COM object methods with nil argument won't crash the program anymore (Fixes #177)
  • Fixed: COM method or property returning a COM Nothing value won't crash the program anymore (Fixes #173)
  • Fixed: Task that returns a boolean or number value will crash the program when calling the Task.after function (Fixes #175)

ui module

  • Fixed: TreeItem:loadicon() now load icon correctly (Fixes #170)
  • Fixed: Tab:onSelect() event is now fired when the property Tab.selected is set (Fixes #171)
  • Fixed: Tab key can now be used to navigate between widgets inside a Panel or TabItem (Fixes #174)

πŸ“‹ VirusTotal detection for LuaRT-v1.7.1-x64.zip
πŸ“‹ VirusTotal detection for LuaRT-v1.7.1-x86.zip

πŸ”’ Minisign public key RWQePKEZPWae5LOhoGMWSH8l3tbnk1lG9Lxufdu6wSk3oxyiPzYdvylF

If you ❀️ LuaRT, don't forget to put a ⭐ on the GitHub repository !

LuaRT 1.7.0

05 Jan 20:35

Choose a tag to compare

LuaRT v1.7.0 (Jan 05 2024)

Highlights

  • This release introduces RTBuilder, a new GUI RAD tool to design LuaRT desktop interfaces using ui module
  • Lots of bugs have been fixed, especially for the ui module, the rtc compiler and the LuaRT Studio IDE

LuaRT toolchain

  • Updated: MSVC builds now use better optimizations for faster execution
  • Fixed: rtcheck won't propose to update for an inferior version now (Fixes #167)

rtc

  • New: rtc now accepts mutiple files (the first one will be considered the main script)
  • Updated: -l option now search for modules in the current directory too
  • Fixed: Errors thrown by any compiled executables now mention source file and error line (Fixes #5)

LuaRT Studio

  • Updated: LuaRT Studio is now using the LuaRT 1.7.0 toolchain
  • Fixed: Debugger will now pause once a breakpoint is hit inside an ui event function, when using a Task to update the GUI
  • Fixed: Output panel bug with Unicode input/output fixed
  • Fixed: require of modules using init.lua from compiled executable is now working as expected
  • Fixed: Setting project arguments won't add a blank space to the first argument anymore

Examples

  • New: balls_demo.wlua example for canvas module

sys module

  • Fixed: Task:cancel() won't try to close an already closed Task
  • Fixed: sys.cmd() now returns true in LuaRT Studio as expected (Fixes #155)
  • Fixed: File:write() method now flush data to disk when the file is a standard stream (Fixes #165)

ui module

  • New: Window constructor now takes a first optional argument to provide a parent Window
  • New: Window:restore() method
  • New: Window.topmost property
  • New: Window.onMaximize(), Window.onMinimize() and Window.onRestore() events
  • New: Tree.items property can now be indexed by integer value, returning the TreeItem in numerical order from the first TreeItem to the last one
  • New: Tree.items property is now iterable with the each() iterator
  • New: TreeItem.index property to get the numerical order of the TreeItem in the Tree
  • Updated: Setting Entry.text property now moves the caret at the start Updated: Setting the Calendar.date property from a string is now possible
  • Fixed: Treeitem: Loadicon() won't fail to load a new icon after having removed the previous one (Fixes #160)
  • Fixed: Providing a filename without extension in ui.savedialog() now returns correct filename when using multiple filters (Fixes #166)
  • Fixed: Window keyboard shortcuts now execute binded Lua functions as expected (Fixes #162)
  • Fixed: After Progressbar construction, Progressbar.themed returns true now as expected (Fixes #154)
  • Fixed: Canvas.fontstyle now returns a string value as expected (Fixes #164)
  • Fixed: Third party widgets now use initial size/position when the align property is set to nil (Fixes #158)
  • Fixed: Widget:center() method now work as expected inside a Groupbox (Fixes #163 and #153)
  • Fixed: Window.height returns now the correct value and a Window.menu property is set (Fixes #161)
  • Fixed: Setting Edit.font property now preserve the current foreground color (Fixes #159)

πŸ“‹ VirusTotal detection for LuaRT-v1.7.0-x64.zip
πŸ“‹ VirusTotal detection for LuaRT-v1.7.0-x86.zip

πŸ”’ Minisign public key RWQePKEZPWae5LOhoGMWSH8l3tbnk1lG9Lxufdu6wSk3oxyiPzYdvylF

If you ❀️ LuaRT, don't forget to put a ⭐ on the GitHub repository !

LuaRT 1.6.0

26 Nov 13:33

Choose a tag to compare

LuaRT v1.6.0 (Nov 26 2023)

Highlights

  • This release focuses on fixing many bugs in the ui module, to prepare for the launch of the LuaRT GUI builder
  • It also offers many suggestions proposed by LuaRT users
  • New: ini module to convert from/to Windows INI configuration file from/to Lua table
  • New: Panel widget that can contain other child widgets
  • New: New tool rtcheck.exe to check/install LuaRT updates

LuaRT toolchain

  • Updated: Using require() to load .wlua files is now possible
  • New: New tool rtcheck.exe to check/install LuaRT updates
  • Fixed: rtc compiled executables with embedded modules can have now multiple running instances (Fixes #124)
  • Fixed: QuickRT now pretty prints correctly Object values (Fixes #9).
  • Fixed: wluart.exe don't crash anymore in case of error (Fixes #121)
  • Fixed: wluart.exe errors are now shown, without the empty "Runtime error" message box (Fixes #123)

LuaRT Studio

  • Updated: LuaRT Studio is now using the LuaRT 1.6.0 toolchain
  • New: New Check for LuaRT update command in File menu
  • New: New toolbar icon for the "Analyze" command
  • Updated: Help menu now contains links related to LuaRT webiste
  • Fixed: Debugging a script that contains a call to the Task:wait() method won't crash the program anymore (Fixes #20)
  • Fixed: Clicking on the "stop" button will now really stop the running program (Fixes #19)

QuickRT

  • Updated: QuickRT now uses LuaRT 1.6.0 runtime (Lua 5.4.6 VM)
  • Fixed: interacting with ui widgets and windows won't hang the GUI anymore
  • Fixed: Pretty printing of LuaRT Object is now fixed

LuaRT documentation

  • Updated: now the documentation contains all new LuaRT 1.6.0 changes, and a lot of fixes
  • Fixed: Canvas documentation for transformations methods are now published as expected

Examples

  • Updated: net\download.lua hides now the cursor during downloading
  • Updated: ui\notepad.wlua can now open *.rtf files
  • Fixed: net\server.wlua now shows text as expected
  • Fixed: Syntax highlighting fixed in ui\zoom.wlua

sys module

  • Updated: Faster Task switching in internal scheduler providing more responsiveness
  • Updated: sys.cmd() now has a third argument to specify whether the launched process is a standalone one or a child process
  • Fixed: Setting a number COM property value don't cause an error anymore when using a string (Fixes #113)
  • Fixed: COM objects don't crash once garbage collection/program exit (Fixes #116)
  • Fixed: Datetime:interval() now returns a to...from interval as expected (Fixes #114)

console module

  • Fixed: console.reset() now resets cursor height too

net module

  • Fixed: Http object can now send new requests without crashing (Fixes #149)

ui module

  • New: Panel widget that can contain other child widgets
  • New: Edit.rtf property to set Rich Text Format mode without loosing content
  • Updated: Edit.richtext property now set/get the current Edit content in Rich Text Format
  • Updated: Setting Edit.text property won't scroll the content to the bottom anymore
  • Updated: Autosized widgets now conforms more with Windows UI standards
  • Updated: Widget.align now remembers last widget position and size
  • Updated: Widget.bgcolor property now returns nil if bgcolor was not previously set, meaning the widget uses the parent background color
  • Updated: List.selected, Tree.selected and Combobox.selected can now be set to nil to unselect current selection
  • Fixed: Examples using Edit.color instead of Edit.fgcolor since LuaRT 1.5.0 are now fixed
  • Fixed: Label.bgcolor and Label.fgcolor cannot be set when Label is inside a TabItem (Fixes #119)
  • Fixed: ui.run() Task won't run indefinitely anymore in some cases
  • Fixed: Groupbox child widgets events now provides the correct self (Fixes #125)
  • Fixed: Tab.cursor property don't set cursor for TabItems, only on the tabsheet part (Fixes #134)
  • Fixed: Tab don't align TabItems correctly when setting the Tab.align property (Fixes #128)
  • Fixed: Widget background color may not be drawn correctly (Fixes #127)
  • Fixed: Clicking on a List blank space unselects the current selected item (Fixes #143)
  • Fixed: Deleting a Treeitem may crash the program (Fixes #137)
  • Fixed: Entry is still focused when ENTER/RETURN key is pressed (Fixes #135)
  • Fixed: Groupbox does not dispatch the onClick() event to its child widgets as expected (Fixes #147)
  • Fixed: Window:maximize() does not work on first display (Fixes #142)
  • Fixed: Picture:load() don't adjust image to Picture alignment (Fixes #132)
  • Fixed: Label.textalign returns "center" instead of "right" when text alignement was previously set to right (Fixes #139)
  • Fixed: Widgets property tooltip returns incorrect or empty string (Fixes #138)
  • Fixed: Centering a Widget with the center() method in a Window with a status bar resulting in a vertical position too far up (Fixes #146)
  • Fixed: Picture:load() don't adjust image to Picture alignment (Fixes #132)
  • Fixed: Progressbar.fgcolor and Progressbar.bgcolor return wrong 0x000000 colors in non themed mode (Fixes #131)
  • Fixed: ui.opendialog() and ui.savedialog() should not change current directory (Fixes #133)
  • Fixed: Clicking on a MenuItem without an onClick event handler should not throw a runtime error (Fixes #145)
  • Fixed: ListItem:loadicon() TabItem:loadicon() ComboItem:loadicon() and TreeItem:loadicon() don't remove icon when called with a nil value (Fixes #129)
  • Fixed: Setting Edit.text property don't work when Edit.richedit is set to true (Fixes #130)
  • Fixed: Edit:load() and Edit:save() methods don't closes the file (Fixes #148)

webview module

  • New: Webview.acceleratorkeys property
  • Updated: Webview:eval() now returns a Task that will be finished once the Javascript engine has returned the result
  • Updated: Webview:onResult() event removed due to the eval() rework
  • Updated: hostfromfolder() now allows local resource access when using loadstring()
  • Fixed: Compiling Webview module won't throw library missing errors anymore

json module

  • New: json.load() and json.save() to load/save lua table from/to a JSON file
  • Fixed : json.encode() failed memory allocation fixed (Fixes #117)
  • Fixed : json.encode() now encodes Lua "null" values to JSON null (Fixes #118)

πŸ“‹ VirusTotal detection for LuaRT-v1.6.0-x64.zip
πŸ“‹ VirusTotal detection for LuaRT-v1.6.0-x86.zip

πŸ”’ Minisign public key RWQePKEZPWae5LOhoGMWSH8l3tbnk1lG9Lxufdu6wSk3oxyiPzYdvylF

If you ❀️ LuaRT, don't forget to put a ⭐ on the GitHub repository !

LuaRT 1.5.2

17 Sep 12:43

Choose a tag to compare

LuaRT v1.5.2 Bugfix (Sept 16 2023)

LuaRT installer

  • Fixed: now the LuaRT installer window will always show over other windows.

LuaRT toolchain

  • Updated: rtc now prevents access to embedded content from generated executables.
  • Fixed: LuaRT can now be built with mingw-w64 compiler again (Fixes #105)

LuaRT documentation

  • Updated: now the documentation contains all new LuaRT 1.5.0 (and later) changes
  • Fixed: Checking for a Widget instance won't throw a "((null)) instance expected, found..." anymore

LuaRT C API

  • New: lua_gettask() function to get the current executing Task.

sys module

  • Fixed: Getting COM enumeration property value don't crash anymore (Fixes #104)

Asynchronous programming

  • Fixed: Calling sleep() from a compiled script don't cause a fatal error anymore (Fixes #103)

ui module

  • New: Progressbar.themed property (as a side effect the isthemed constructor parameter is no more used).
  • New: Button.textalign, and Entry.textalign properties.
  • New: example filelist.wlua that implements an explorer-like List widget.
  • Updated: ui.run() function now returns a Task object that will update the GUI asynchronously.
  • Updated: bgcolor and fgcolor properties now returns the default color instead of nil.
  • Updated: Edit.selection.color renamed to Edit.selection.fgcolor for consistency.
  • Updated: Edit.color renamed to Edit.fgcolor for consistency.
  • Fixed: ui.colordialog() and ui.fontdialog() now return a RGB color value as expected (Fixes #111)
  • Fixed: Tab.onMouseUp() and Tab.onMouseDown() events are now fired when the mouse is over the entire Tab (Fixes #108)
  • Fixed: Setting List.selected property now ensures the selected item is visible (Fixes #107)
  • Fixed: Label.bgcolor now renders the Label background correctly (Fixes #102)
  • Fixed: Picture constructor now uses the width and height parameters as expected (Fixes #106)
  • Fixed: Picture transparency bug fixed when inside a Tab (Fixes #100)
  • Fixed: List now redraws correctly when resized (Fixes #110)
  • Fixed: Label.textalign property now behave as expected (Fixes #99)

πŸ“‹ VirusTotal detection for LuaRT-v1.5.2-x64.zip
πŸ“‹ VirusTotal detection for LuaRT-v1.5.2-x86.zip

If you ❀️ LuaRT, don't forget to put a ⭐ on the GitHub repository !