LuaRocks vs uv
LuaRocks
luarocks.orguv
docs.astral.shSide by side
| Figure | LuaRocks | uv |
|---|---|---|
| Price from | Free | Free |
| Free plan | Yes | Yes |
| Free trial | — | — |
| Open source | — | — |
| Windows | Yes | Yes |
| macOS | Yes | Yes |
| Linux | Yes | Yes |
| API | Yes | — |
| Self-hosted | Yes | — |
| Plans published | 1 | 1 |
| Spec score · Package Managers | 8.5 (#23) | 8.9 (#4) |
| Dependency resolution | Yes | Yes |
| Free plan | Yes | Yes |
| Offline installation | Yes | Yes |
| Package formats | A rock is a zip file containing its rockspec and the files needed to install a module; rocks can be built for specific platforms. | source distributions,wheels,requirements.txt,pylock.toml |
| Purpose | LuaRocks is a package manager for Lua, and LuaRocks.org hosts rocks and rockspecs for Lua modules. | uv is an extremely fast Python package and project manager written in Rust. |
| Security | A 2019 security incident page says LuaRocks.org packages did not have signing and verification at the time of that incident. | uv uses TLS with rustls and bundled Mozilla root certificates by default to verify HTTPS connections. |
| Supported platforms | Linux,macOS,Windows,Unix,FreeBSD,Cygwin | macOS,Linux,Windows,CPython,PyPy,Pyodide,GraalPy |
Plans
In their own words
LuaRocks
LuaRocks is a package manager for Lua, with LuaRocks.org hosting rocks and rockspecs for Lua modules. Its command line uses manifests to find packages, choose a version and platform match, and install the corresponding files locally. Rocks carry version dependency information, which LuaRocks uses to install dependencies and load the appropriate module version. Package collections can be organized through the root manifest, per-user manifests, or custom manifests; development versions are kept in a separate manifest and are not installed by default. LuaRocks supports offline installation and platforms including Linux, macOS, Windows, Unix, FreeBSD, and Cygwin. Module authors can register and upload a rockspec, then publish rock files for a version; the current release supports the `luarocks upload` command. The application is described as pure Lua with no library dependencies, though its current release uses helper tools. LuaRocks is free, with a listed price of free.
uv
uv is a Python package and project manager for Linux, macOS, and Windows. Written in Rust, it manages dependencies and environments, with lockfiles and workspaces, and can install, list, pin, or uninstall Python versions. It also runs scripts with dependencies and runs or installs command-line tools from Python packages. Its pip-compatible interface is intended to cover work done by tools such as pip, pip-tools, pipx, poetry, pyenv, twine, and virtualenv, though its commands do not exactly match those tools. The documentation describes uv as 10–100x faster than pip. It supports source distributions, wheels, requirements.txt, and pylock.toml, as well as offline installation and private registry authentication. For package selection, its default first-index strategy limits candidates to the first index where a package is found. Credentials are not stored in uv.lock, but uv currently stores them in a plaintext file; native system secret storage is an experimental preview. The free plan is free.