Lute is a general-purpose, Node.js-style runtime for Luau (https://luau.org/) that just hit 1.0.0. It supports filesystem operations, networking, process management, cryptography, and a proper module system, backed by libraries like libuv, curl, and libsodium.
The part we're most excited about: we've exposed APIs for manipulating Luau's syntax tree, so you can write code transformations directly against the language using Lute. This is especially useful if you're working with a large Luau codebase and want powerful tooling.
The team's happy to answer questions about the implementation or design decisions!
Ah this reminds me of my favorite stack which I never got to actually work with; luvit.io (libuv with luajit; both hot items at the time).
I hope this becomes a thing, typing in lua might make it easier to scale for teams (which I think is always an issue with dynamic language)
I really should check up on what Mr Caswell is up to. He was quite inspiring with both his diy home improvements as well as activity in the development space.
In the abstract, there’s more of a focus on being general purpose, rather than Lune providing e.g. Roblox file format parsing as a core feature.
Concretely, they’re pretty similar right now, but Lute exposes Luau’s parser which we’re using to build more developer tooling for Luau, including a linter, a codemod tool, and a package manager (and hopefully more in the future).
Congrats on the 1.0.0 release! Being able to write custom tooling in Luau using the Luau parsing APIs will be awesome. Hopefully it makes updating tools to use new Luau features easier – at the moment I have a workflow with a custom-built parser which I'd have to modify to support, for example, the new `const` declarations; having easy access (from scripts) to regularly-updated parser APIs is a big deal for a language that's moving as quickly as Luau is.
Lute is a general-purpose, Node.js-style runtime for Luau (https://luau.org/) that just hit 1.0.0. It supports filesystem operations, networking, process management, cryptography, and a proper module system, backed by libraries like libuv, curl, and libsodium.
The part we're most excited about: we've exposed APIs for manipulating Luau's syntax tree, so you can write code transformations directly against the language using Lute. This is especially useful if you're working with a large Luau codebase and want powerful tooling.
The team's happy to answer questions about the implementation or design decisions!
Ah this reminds me of my favorite stack which I never got to actually work with; luvit.io (libuv with luajit; both hot items at the time).
I hope this becomes a thing, typing in lua might make it easier to scale for teams (which I think is always an issue with dynamic language)
I really should check up on what Mr Caswell is up to. He was quite inspiring with both his diy home improvements as well as activity in the development space.
He really did create a lot of cool stuff. It’s inspiring to see how much one person can create.
How does it compare to Lune[1]? I use Lune for scripts today
[1] https://github.com/lune-org/lune
In the abstract, there’s more of a focus on being general purpose, rather than Lune providing e.g. Roblox file format parsing as a core feature.
Concretely, they’re pretty similar right now, but Lute exposes Luau’s parser which we’re using to build more developer tooling for Luau, including a linter, a codemod tool, and a package manager (and hopefully more in the future).
Congrats on the 1.0.0 release! Being able to write custom tooling in Luau using the Luau parsing APIs will be awesome. Hopefully it makes updating tools to use new Luau features easier – at the moment I have a workflow with a custom-built parser which I'd have to modify to support, for example, the new `const` declarations; having easy access (from scripts) to regularly-updated parser APIs is a big deal for a language that's moving as quickly as Luau is.
Why would I go with Lute over something like Python if I was starting a new project?
Python is a mess compared to Lua (in my opinion of course). Lua and Luau are much smaller and more consistent languages.
Seems like mainly a way to write Roblox compatible applications that aren't locked in to the Roblox platform?
Not sure it even has to be Roblox compatible, but someone who writes Roblox code can take advantage of a familiar Lua variant.
well done! wouldn't it nice if something like this existed in Lua as well (or maybe it does and I haven't seen it yet)?
I've built a data transforming tool powered by Lua[1] and would definitely like to benefit from an general purpose api/library like Lute.
1: https://github.com/dhuan/dop