Skip to content

Latest commit

 

History

History
61 lines (46 loc) · 3 KB

README.md

File metadata and controls

61 lines (46 loc) · 3 KB

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.

📚 Usage

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
cmake build spec
command build spec
custom build backends 1
rust-mlua build spec ✅ (builtin) ✅ (external build backend)
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
supports pkg-config
automatic lua detection/installation

📖 License

rocks 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.