A [WIP] Library & Client implementation of luarocks
Warning
rocks is a work in progress and does not have a stable release yet.
Rocks 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.
rocks <command> <options>
To view available options and their descriptions, run rocks --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, rocks has some features that are not present in luarocks.
The following table provides a brief (incomplete) comparison:
rocks |
luarocks v3.11.1 |
|
---|---|---|
builtin build spec |
✅ | ✅ |
make build spec |
✅ | ✅ |
rust-mlua build spec |
✅ (builtin) | ✅ (external build backend) |
tree-sitter build spec |
❌ (planned) | ✅ (external build backend) |
cmake build spec |
❌ (planned) | ✅ |
command build spec |
❌ (planned) | ✅ |
custom build backends | ❌ (planned1) | ✅ |
install pre-built binary rocks | ❌ (planned) | ✅ |
parallel builds/installs | ✅ | ❌ |
install multiple packages with a single command | ✅ | ❌ |
install packages using version constraints | ✅ | ❌ |
lockfiles | ✅ | ✅ (basic, dependency versions only) |
formatting with stylua | ✅ | ❌ |
rocks
is licensed under MIT.
Contributions are more than welcome! See CONTRIBUTING.md for a guide.
Footnotes
-
planned via a luarocks compatibility layer. ↩