Releases: lune-org/lune
Release list
0.10.5
Added
-
Added
QueryDescendantsto instances in therobloxstandard library. -
Added
registerClassandregisterServicefunctions to therobloxstandard 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
robloxstandard 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.waitnot gracefully handling negative,NaN, and other non-finite durations - Fixed datatype arithmetic in
@lune/robloxnot working with a scalar on the left-hand side, such as2 * Vector3.new(1, 2, 3) - Fixed various completeness and correctness issues across datatypes in the
robloxstandard library - Fixed web socket close codes not being set to
1005(no status) or1006(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
closemethod on a child process writer not closing it (#359) - Fixed truncation of
lune buildoutput 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
Added
- Added support for the
jsoncserialization format in theserdestandard library - Added an
mluafeature flag tolune-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
robloxstandard library, not allowing the characters/.- - Fixed various issues in the
robloxstandard library caused by an outdated reflection database and version ofrbx-dom(#358)
0.10.3
0.10.2
Added
- Added support for the ZSTD compression format in the
serdestandard library (#339) - Added support for
UniqueIdproperties to therobloxstandard 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
Fixed
- Fixed a regression where it was not possible to run directories with
init.luaufiles in them directly usinglune run directory-name. - Fixed a panic when calling
process.exitinside a file thatrequirewas called on. (#333) - Fixed a panic when calling
process.exitinside a request handler fornet.serve. (#333)
0.10.0
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
netstandard 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
netstandard library:http,tcp, andws.These will be the preferred way of interacting with the
netstandard 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.socketwill be removed in favor of their equivalent functions in submodules, such asnet.ws.connect. Here is the full new list of functions:net.http.requestnet.http.servenet.tcp.connectnet.ws.connect
-
Added a method
with_libto theRuntimestruct in thelunecrate, to allow registering custom libraries.
Changed
- Updated to Luau version
0.682 - Upgraded to
mluaversion0.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.requestand related functions in the main body of a module duringrequire - Fixed various issues with not conforming to the new Luau require-by-string semantics
0.9.4
Changed
lune setupnow properly sets up a.luaurcfile instead of using legacy VSCode-specific settingsprocess.argsandprocess.envare 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 buildnot being deterministic and sometimes truncating - Fixed
cargo install lunefailing due to a yanked dependency (#323)
0.9.3
Added
- Added support for non-UTF8 strings in arguments to
process.execandprocess.spawn
Changed
- Improved cross-platform compatibility and correctness for values in
process.argsandprocess.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
Changed
- Improved performance of
net.requestandnet.servewhen handling large request bodies - Improved performance and memory usage of
task.spawn,task.defer, andtask.delay
Fixed
- Fixed accidental breakage of
net.requestin version0.9.1