- Lux es un nuevo gestor de paquetes con el objetivo de construir un ecosistema adecuado para Lua, pensado para la creación, el mantenimiento y la distribución de código Lua
- Lux ofrece una CLI simple e intuitiva inspirada en gestores de paquetes bien conocidos como
cargo
Funciones
- Portabilidad completa entre sistemas
- Soporte para compilación e instalación en paralelo 🚀
- Manejo automático de la instalación de headers de Lua
- Exposición de la API de Lua a través del crate
lux-lib
- Gestión de proyectos mediante el archivo
lux.toml
- Generación automática de rockspec
- Sólido soporte de lockfile
- Entornos de compilación y desarrollo completamente reproducibles
- Integración de formateo y linting de código
- Soporte para ejecutar pruebas con
busted
- Posibilidad de usar Neovim como intérprete de Lua
- Configuración de entornos puros
- Compatibilidad con el ecosistema de luarocks
Motivación
Lua
- Luarocks tiene 20 años de historia, por lo que no se adapta bien al desarrollo moderno en Lua
- Lux apunta a ser un nuevo comienzo
- Uso de TOML como formato principal de manifiesto para gestionar dependencias
- Posibilidad de compilar e instalar proyectos desde el directorio del proyecto con el comando
build
- Aplicación obligatoria del cumplimiento de SemVer
- Soporte para compilación en paralelo
Neovim
- Aumento de popularidad debido al soporte de Luarocks en los gestores de plugins de Neovim
rocks.nvim y lazy.nvim
- Lux es no destructivo y no interfiere con la forma en que se distribuyen los plugins de Neovim
- Con la bandera
--nvim, es posible instalar paquetes en una estructura de árbol compatible con Neovim
Nix
- Si un plugin de Neovim existe como paquete de Luarocks,
nixpkgs lo utiliza
lux.lock de Lux almacena la fuente y el hash del rockspec de cada dependencia
Próximos pasos
- Enfocarse en corregir bugs y mejorar los mensajes de error
- Se planea reescribir
rocks.nvim sobre la base de Lux
- Si la reescritura tiene éxito, se espera un impacto positivo en el ecosistema de Neovim
Documentación
- El sitio web de documentación de Lux ofrece tutoriales y guías
- Es posible resolver preguntas y problemas mediante las discusiones de GitHub y el issue tracker
Licencia
- Lux se ofrece bajo la licencia MIT
- El logo de Lux se ofrece bajo la licencia CC BY-NC-SA 4.0
1 comentarios
Comentarios de Hacker News
luaen el registro: https://prefix.dev/channels/conda-forge/packages/lualuarockses tan rígido en sus decisiones que casi no sirve. Cualquier cosa que vaya más allá de "instalar una biblioteca para ejecutarla directamente en el sistema local", o incluso lo que está alrededor de eso, ya ni arranca. ¿Tienes un entorno de scripting integrado que funciona con paquetes de Lua y quieres empaquetar scripts para usar ahí junto con sus dependencias? Mejor ni lo intentesluarockses incómodo y frustrante de usarnixes un enfoque mucho mejor