Skip to content

teto/lux

 
 

Repository files navigation

A [WIP] Library & Client implementation of luarocks

Warning

lux is a work in progress and does not have a stable release yet.

Lux serves as an application for:

  • Installing and managing rocks
  • Creating Lua projects with dependencies, build scripts and desired Lua versions
  • Creating and publishing your own rocks
  • Embedding rock manipulation logic into your own application

Note

This aims to be a full rewrite of luarocks, with many flags altered to be more ergonomic. This is not a drop-in replacement for luarocks commands you may have in scripts.

πŸ“š Usage

lux <command> <options>

To view available options and their descriptions, run lux --help.

Comparison with luarocks v3.11.1

As this project is still a work in progress, some luarocks features have not been (fully) implemented yet. On the other hand, lux has some features that are not present in luarocks.

The following table provides a brief (incomplete) comparison:

lux luarocks v3.11.1
builtin build spec βœ… βœ…
make build spec βœ… βœ…
cmake build spec βœ… βœ…
command build spec βœ… βœ…
custom build backends βœ…1 βœ…
rust-mlua build spec βœ… (builtin) βœ… (external build backend)
RockSpecs with CVS/Mercurial/SVN/SSCM sources ❌ (YAGNI2) βœ…
install pre-built binary rocks βœ… βœ…
parallel builds/installs βœ… ❌
install multiple packages with a single command βœ… ❌
install packages using version constraints βœ… ❌
proper lockfile support with integrity checks βœ… ❌ (basic, dependency versions only)
auto-detect external dependencies and Lua headers with pkg-config βœ… ❌
automatic lua detection/installation βœ… ❌
resolve multiple versions of the same dependency at runtime ❌ (planned) βœ…
run tests with busted βœ… βœ…
code formatting with stylua βœ… ❌
linting with luacheck βœ… ❌
static type checking ❌ (planned) ❌
pack and upload pre-built binary rocks βœ… βœ…
add/remove dependencies βœ… ❌
luarocks.org manifest namespaces βœ… βœ…
luarocks.org dev packages βœ… βœ…

πŸ“– License

lux is licensed under MIT.

πŸ’š Contributing

Contributions are more than welcome! See CONTRIBUTING.md for a guide.

Footnotes

  1. Supported via a compatibility layer that uses luarocks as a backend. ↩

  2. You Aren't Gonna Need It. ↩

About

A luxurious package manager for Lua

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Rust 83.1%
  • Roff 15.5%
  • Other 1.4%