{"id":25459758,"url":"https://github.com/nvim-neorocks/lux","last_synced_at":"2025-04-04T23:06:50.268Z","repository":{"id":216635835,"uuid":"741839850","full_name":"nvim-neorocks/lux","owner":"nvim-neorocks","description":"A luxurious package manager for Lua","archived":false,"fork":false,"pushed_at":"2025-03-31T11:52:18.000Z","size":2090,"stargazers_count":93,"open_issues_count":52,"forks_count":2,"subscribers_count":7,"default_branch":"master","last_synced_at":"2025-03-31T12:28:46.220Z","etag":null,"topics":["luarocks","package-manager"],"latest_commit_sha":null,"homepage":"https://nvim-neorocks.github.io/","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/nvim-neorocks.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-01-11T08:11:52.000Z","updated_at":"2025-03-30T09:14:59.000Z","dependencies_parsed_at":"2024-01-11T13:30:53.115Z","dependency_job_id":"98b2369d-33d5-44d9-8723-c4a8ed94a583","html_url":"https://github.com/nvim-neorocks/lux","commit_stats":{"total_commits":275,"total_committers":7,"mean_commits":"39.285714285714285","dds":"0.38909090909090904","last_synced_commit":"d11209779b008188e915c93a8d7342b3def4a220"},"previous_names":["nvim-neorocks/rocks","nvim-neorocks/lux"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nvim-neorocks%2Flux","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nvim-neorocks%2Flux/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nvim-neorocks%2Flux/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nvim-neorocks%2Flux/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/nvim-neorocks","download_url":"https://codeload.github.com/nvim-neorocks/lux/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247006838,"owners_count":20868079,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["luarocks","package-manager"],"created_at":"2025-02-18T04:09:02.511Z","updated_at":"2025-04-04T23:06:50.248Z","avatar_url":"https://github.com/nvim-neorocks.png","language":"Rust","funding_links":[],"categories":["Rust"],"sub_categories":[],"readme":"# A [WIP] Library \u0026 Client implementation of [`luarocks`](https://github.com/luarocks/luarocks)\n\n\u003e [!WARNING]\n\u003e\n\u003e **lux is a work in progress\n\u003e and does not have a stable release yet.**\n\nLux serves as an application for:\n\n- Installing and managing rocks\n- Creating Lua projects with dependencies, build scripts and desired Lua versions\n- Creating and publishing your own rocks\n- Embedding rock manipulation logic into your own application\n\n\u003e [!NOTE]\n\u003e\n\u003e This aims to be a full rewrite of `luarocks`, with many flags altered to be more\n\u003e ergonomic. This is not a drop-in replacement for `luarocks` commands you may have in scripts.\n\n## :books: Usage\n\n```sh\nlx \u003ccommand\u003e \u003coptions\u003e\n```\n\nTo view available options and their descriptions, run `lx --help`.\n\n## Comparison with [`luarocks v3.11.1`](https://github.com/luarocks/luarocks)\n\nAs this project is still a work in progress, some luarocks features\nhave not been (fully) implemented yet.\nOn the other hand, lux has some features that are not present in luarocks.\n\nThe following table provides a brief (incomplete) comparison:\n\n|                                                                       | lux                          | luarocks v3.11.1 |\n| ---                                                                   | ---                          | ---                |\n| project RockSpec format                                               | TOML                         | Lua                |\n| `builtin` build spec                                                  | :white_check_mark:           | :white_check_mark: |\n| `make` build spec                                                     | :white_check_mark:           | :white_check_mark: |\n| `cmake` build spec                                                    | :white_check_mark:           | :white_check_mark: |\n| `command` build spec                                                  | :white_check_mark:           | :white_check_mark: |\n| custom build backends                                                 | :white_check_mark:[^1]       | :white_check_mark: |\n| `rust-mlua` build spec                                                | :white_check_mark: (builtin) | :white_check_mark: (external build backend) |\n| `treesitter-parser` build spec                                        | :white_check_mark: (builtin) | :white_check_mark: (external build backend) |\n| RockSpecs with CVS/Mercurial/SVN/SSCM sources                         | :x: (YAGNI[^2])              | :white_check_mark: |\n| install pre-built binary rocks                                        | :white_check_mark:           | :white_check_mark: |\n| parallel builds/installs                                              | :white_check_mark:           | :x:                |\n| install multiple packages with a single command                       | :white_check_mark:           | :x:                |\n| install packages using version constraints                            | :white_check_mark:           | :x:                |\n| proper lockfile support with integrity checks                         | :white_check_mark:           | :x: (basic, dependency versions only) |\n| auto-detect external dependencies and Lua headers with `pkg-config`   | :white_check_mark:           | :x:                |\n| automatic lua detection/installation                                  | :white_check_mark:           | :x:                |\n| resolve multiple versions of the same dependency at runtime           | :white_check_mark:           | :white_check_mark: |\n| run tests with busted                                                 | :white_check_mark:           | :white_check_mark: |\n| code formatting with stylua                                           | :white_check_mark:           | :x:                |\n| linting with luacheck                                                 | :white_check_mark:           | :x:                |\n| static type checking                                                  | :x: (planned)                | :x:                |\n| pack and upload pre-built binary rocks                                | :white_check_mark:           | :white_check_mark: |\n| add/remove dependencies                                               | :white_check_mark:           | :x:                |\n| luarocks.org manifest namespaces                                      | :white_check_mark:           | :white_check_mark: |\n| luarocks.org dev packages                                             | :white_check_mark:           | :white_check_mark: |\n| versioning                                                            | SemVer[^3]                   | arbitrary          |\n\n[^1]: Supported via a compatibility layer that uses luarocks as a backend.\n[^2]: [You Aren't Gonna Need It.](https://martinfowler.com/bliki/Yagni.html)\n[^3]: Mostly compatible with the luarocks version parser,\n      which allows an arbitrary number of version components.\n      To comply with SemVer, we treat anything after the third version component\n      (except for the specrev) as a prerelease/build version.\n\n## :book: License\n\nLux is licensed under [MIT](./LICENSE).\n\n## :green_heart: Contributing\n\nContributions are more than welcome!\nSee [CONTRIBUTING.md](./CONTRIBUTING.md) for a guide.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnvim-neorocks%2Flux","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnvim-neorocks%2Flux","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnvim-neorocks%2Flux/lists"}