Skip to content

Releases: lune-org/lune

0.10.5

Choose a tag to compare

@github-actions github-actions released this 02 Jul 16:40
e173211

Added

  • Added QueryDescendants to instances in the roblox standard library.

  • Added registerClass and registerService functions to the roblox standard library, letting classes and services that
    the reflection database does not know about - such as those only present in specific Roblox builds - be implemented and used:

    local roblox = require("@lune/roblox")
    
    roblox.registerService("FileSystemService")
    
    roblox.implementMethod("FileSystemService", "ReadFile", function(_, path: string)
        return -- ... read and return the file contents ...
    end)
    
    local game = roblox.Instance.new("DataModel")
    local fss = game:GetService("FileSystemService")

Changed

  • Refactored the roblox standard library to support multiple independent doms. Instances now have stable references,
    and place or model files containing colliding referents can be loaded at the same time without conflicts.
  • Updated to Luau version 0.709
  • Updated to rbx-dom database version 0.728

Fixed

  • Fixed task.wait not gracefully handling negative, NaN, and other non-finite durations
  • Fixed datatype arithmetic in @lune/roblox not working with a scalar on the left-hand side, such as 2 * Vector3.new(1, 2, 3)
  • Fixed various completeness and correctness issues across datatypes in the roblox standard library
  • Fixed web socket close codes not being set to 1005 (no status) or 1006 (abnormal closure) when a connection was closed without one
  • Fixed error stack traces truncating real file paths on Windows
  • Fixed NumberSequence.new(start, end) silently ignoring its second constructor argument
  • Fixed ColorSequence.new(start, end) silently ignoring its second constructor argument (#391)
  • Fixed the close method on a child process writer not closing it (#359)
  • Fixed truncation of lune build output paths containing dots on non-Windows targets (#396)
  • Fixed deserialization of Roblox place/model files failing due to Tags now serializing using SharedString (#397)

0.10.4

Choose a tag to compare

@github-actions github-actions released this 14 Oct 07:13
2421e00

Added

  • Added support for the jsonc serialization format in the serde standard library
  • Added an mlua feature flag to lune-roblox, so that it may be used from Rust without bundling the entirety of Luau

Changed

  • Updated to rbx-dom database version 0.694
  • Updated to Luau version 0.694

Fixed

  • Fixed attribute name validation being too strict in the roblox standard library, not allowing the characters /.-
  • Fixed various issues in the roblox standard library caused by an outdated reflection database and version of rbx-dom (#358)

0.10.3

Choose a tag to compare

@github-actions github-actions released this 06 Oct 20:24
f04e636

Changed

  • Updated to Luau version 0.693

Fixed

  • Fixed readToEnd being slow for child processes with large output (#354)
  • Fixed process.exec not reading stdio until child exits (#353)

0.10.2

Choose a tag to compare

@github-actions github-actions released this 31 Aug 11:55
6b2c364

Added

  • Added support for the ZSTD compression format in the serde standard library (#339)
  • Added support for UniqueId properties to the roblox standard library (#343)
  • Added prebuilt Lune binaries for Windows on ARM to GitHub releases

Changed

  • Updated to Luau version 0.688
  • Lune no longer depends on liblzma, making it easier to install on macOS
  • Prebuilt binaries for Ubuntu now use an older version (22.04) for better GLIBC compatibility

Fixed

  • Fixed Lune crashing while emitting an error and parsing its source

0.10.1

Choose a tag to compare

@github-actions github-actions released this 16 Jul 19:18
87b1fb4

Fixed

  • Fixed a regression where it was not possible to run directories with init.luau files in them directly using lune run directory-name.
  • Fixed a panic when calling process.exit inside a file that require was called on. (#333)
  • Fixed a panic when calling process.exit inside a request handler for net.serve. (#333)

0.10.0

Choose a tag to compare

@github-actions github-actions released this 15 Jul 13:06
1d6d3b9

This version of Lune contains a major internal refactoring of the require function, now using the proper require-by-string APIs exposed by Luau.
If you relied on any (incorrect) behavior of relative, non-@self requires, from within init.luau files in Lune 0.9.0, you may need to update your code.
No other usages of require will be affected - but if you previously encountered any internal bugs or panics during require, these will have been fixed!

Added

  • Added support for TCP client in the net standard library.
    It may be used either with TLS or not, and basic usage looks as such:

    -- Plain TCP connections
    local stream = net.tcp.connect("example.com", 80)
    
    -- TLS connections (shorthand)
    local tlsStream = net.tcp.connect("example.com", 443, true)
    
    -- Connections with custom TLS setting & TTL
    local customStream = net.tcp.connect("192.168.1.100", 8080, {
    	  tls = false,
    	  ttl = 128
    })
    
    -- Interacting with the stream
    tlsStream:write("GET / HTTP/1.1\r\nHost: example.com\r\n\r\n")
    
    while true do
        local data = tlsStream:read()
        if data ~= nil then
            print(data)
        else
            break -- Connection was closed
        end
    end
  • Added submodules to the net standard library: http, tcp, and ws.

    These will be the preferred way of interacting with the net standard library going forward, but none of the old functions have been removed or deprecated yet to allow users time to migrate.

    In a future major version of Lune, direct functions such as net.socket will be removed in favor of their equivalent functions in submodules, such as net.ws.connect. Here is the full new list of functions:

    • net.http.request
    • net.http.serve
    • net.tcp.connect
    • net.ws.connect
  • Added a method with_lib to the Runtime struct in the lune crate, to allow registering custom libraries.

Changed

  • Updated to Luau version 0.682
  • Upgraded to mlua version 0.11 - if you use any of the Lune crates as a dependency, you may also need to upgrade

Fixed

  • Fixed errors being emitted twice when the error is thrown from the main (entrypoint) script
  • Fixed a panic when calling net.request and related functions in the main body of a module during require
  • Fixed various issues with not conforming to the new Luau require-by-string semantics

0.9.4

Choose a tag to compare

@github-actions github-actions released this 13 Jun 11:16
e33cbc0

Changed

  • lune setup now properly sets up a .luaurc file instead of using legacy VSCode-specific settings
  • process.args and process.env are now plain tables again - not userdata - thank you to everyone who provided feedback on this and the usability issues!

Fixed

  • Fixed invalid handling of http redirects in net.request
  • Fixed not being able to download binaries for cross-compiling with lune build
  • Fixed binary output when running lune build not being deterministic and sometimes truncating
  • Fixed cargo install lune failing due to a yanked dependency (#323)

0.9.3

Choose a tag to compare

@github-actions github-actions released this 06 May 17:20
100164f

Added

  • Added support for non-UTF8 strings in arguments to process.exec and process.spawn

Changed

  • Improved cross-platform compatibility and correctness for values in process.args and process.env, especially on Windows

Fixed

  • Fixed stdin not being properly closed when not providing the stdin option to process.exec
  • Fixed various crashes during require that had the error cannot mutably borrow app data container

0.9.2

Choose a tag to compare

@github-actions github-actions released this 30 Apr 13:50
b1fc600

Changed

  • Improved performance of net.request and net.serve when handling large request bodies
  • Improved performance and memory usage of task.spawn, task.defer, and task.delay

Fixed

  • Fixed accidental breakage of net.request in version 0.9.1

0.9.1

Choose a tag to compare

@github-actions github-actions released this 29 Apr 14:10
4079842

Added

  • Added support for automatic decompression of HTTP requests in net.serve (#310)

Fixed

  • Fixed net.serve no longer serving requests if the returned ServeHandle is discarded (#310)
  • Fixed net.serve having various performance issues (#310)
  • Fixed Lune still running after cancelling a task such as task.delay(5, ...) and all tasks having completed