- Luaに適したエコシステムの構築を目指すLuxは、Luaコードの作成、保守、配布のための新しいパッケージマネージャー
- Luxは
cargoのようなよく知られたパッケージマネージャーに着想を得た、シンプルで直感的なCLIを提供
機能
- システム間で完全に移植可能
- 並列ビルドとインストールをサポート 🚀
- Luaヘッダーのインストールを自動処理
lux-libクレートを通じてLua APIを公開可能
lux.tomlファイルによるプロジェクト管理
- rockspecの自動生成
- 強力なlockfileサポート
- 完全に再現可能なビルドおよび開発環境
- コードフォーマットとリンティングの統合
bustedによるテスト実行をサポート
- NeovimをLuaインタプリタとして利用可能
- 純粋な環境設定
- luarocksエコシステムと互換性あり
動機
Lua
- Luarocksは20年の歴史があり、現代のLua開発には適していない
- Luxは新たな出発を目指す
- TOMLを主要なマニフェスト形式として使用し、依存関係を管理
- プロジェクトディレクトリで
buildコマンドによりプロジェクトのビルドとインストールが可能
- SemVer準拠を強制
- 並列ビルドをサポート
Neovim
- Neovimプラグインマネージャー
rocks.nvimとlazy.nvimのLuarocksサポートにより人気が上昇
- Luxは非破壊的であり、Neovimプラグインの配布方式に干渉しない
--nvimフラグでNeovim互換のツリー構造にパッケージをインストール可能
Nix
- NeovimプラグインがLuarocksパッケージとして存在する場合、
nixpkgsでそれを利用
- Luxの
lux.lockは各依存関係のソースとrockspecハッシュを保存
次のステップ
- バグ修正とエラーメッセージ改善に注力
rocks.nvimをLuxベースで再実装予定
- 再実装が成功すればNeovimエコシステムに好影響が見込まれる
ドキュメント
- LuxのドキュメントWebサイトでチュートリアルとガイドを提供
- GitHub DiscussionsとIssue Trackerを通じて質問や問題解決が可能
ライセンス
- LuxはMITライセンスの下で提供
- LuxロゴはCC BY-NC-SA 4.0ライセンスの下で提供
1件のコメント
Hacker Newsのコメント