lux-cli 0.1.0

A luxurious package manager for Lua
docs.rs failed to build lux-cli-0.1.0
Please check the build logs for more information.
See Builds for ideas on how to fix a failed build, or Metadata for how to configure docs.rs builds.
If you believe this is docs.rs' fault, open an issue.
Visit the last successful build: lux-cli-0.27.0

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.

:books: Usage

lx <command> <options>

To view available options and their descriptions, run lx --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 :white_check_mark: :white_check_mark:
make build spec :white_check_mark: :white_check_mark:
cmake build spec :white_check_mark: :white_check_mark:
command build spec :white_check_mark: :white_check_mark:
custom build backends :white_check_mark:[^1] :white_check_mark:
rust-mlua build spec :white_check_mark: (builtin) :white_check_mark: (external build backend)
RockSpecs with CVS/Mercurial/SVN/SSCM sources :x: (YAGNI[^2]) :white_check_mark:
install pre-built binary rocks :white_check_mark: :white_check_mark:
parallel builds/installs :white_check_mark: :x:
install multiple packages with a single command :white_check_mark: :x:
install packages using version constraints :white_check_mark: :x:
proper lockfile support with integrity checks :white_check_mark: :x: (basic, dependency versions only)
auto-detect external dependencies and Lua headers with pkg-config :white_check_mark: :x:
automatic lua detection/installation :white_check_mark: :x:
resolve multiple versions of the same dependency at runtime :x: (planned) :white_check_mark:
run tests with busted :white_check_mark: :white_check_mark:
code formatting with stylua :white_check_mark: :x:
linting with luacheck :white_check_mark: :x:
static type checking :x: (planned) :x:
pack and upload pre-built binary rocks :white_check_mark: :white_check_mark:
add/remove dependencies :white_check_mark: :x:
luarocks.org manifest namespaces :white_check_mark: :white_check_mark:
luarocks.org dev packages :white_check_mark: :white_check_mark:

[^1]: Supported via a compatibility layer that uses luarocks as a backend. [^2]: You Aren't Gonna Need It.

:book: License

Lux is licensed under MIT.

:green_heart: Contributing

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