- Lux là một trình quản lý gói mới nhằm xây dựng một hệ sinh thái phù hợp cho Lua, phục vụ việc tạo, bảo trì và phân phối mã Lua
- Lux cung cấp CLI đơn giản và trực quan, lấy cảm hứng từ những trình quản lý gói quen thuộc như
cargo
Tính năng
- Khả năng di chuyển hoàn toàn giữa các hệ thống
- Hỗ trợ build và cài đặt song song 🚀
- Tự động xử lý việc cài đặt header Lua
- Có thể phơi bày Lua API thông qua crate
lux-lib
- Quản lý dự án thông qua tệp
lux.toml
- Tự động tạo rockspec
- Hỗ trợ lockfile mạnh mẽ
- Build và môi trường phát triển có thể tái lập hoàn toàn
- Tích hợp định dạng mã và linting
- Hỗ trợ chạy kiểm thử bằng
busted
- Có thể sử dụng Neovim làm trình thông dịch Lua
- Thiết lập môi trường thuần khiết
- Tương thích với hệ sinh thái luarocks
Động lực
Lua
- Luarocks đã có lịch sử 20 năm nên không còn phù hợp với phát triển Lua hiện đại
- Lux hướng tới một khởi đầu mới
- Sử dụng TOML làm định dạng manifest chính để quản lý phụ thuộc
- Có thể build và cài đặt dự án từ thư mục dự án bằng lệnh
build
- Bắt buộc tuân thủ SemVer
- Hỗ trợ build song song
Neovim
- Mức độ phổ biến tăng lên nhờ trình quản lý plugin Neovim
rocks.nvim và việc lazy.nvim hỗ trợ Luarocks
- Lux không mang tính phá hủy và không can thiệp vào cách phân phối plugin Neovim
- Có thể cài đặt gói theo cấu trúc cây tương thích với Neovim bằng cờ
--nvim
Nix
- Khi plugin Neovim tồn tại dưới dạng gói Luarocks,
nixpkgs sẽ sử dụng chúng
lux.lock của Lux lưu trữ nguồn và hash rockspec của từng phụ thuộc
Bước tiếp theo
- Tập trung sửa lỗi và cải thiện thông báo lỗi
- Dự kiến viết lại
rocks.nvim dựa trên Lux
- Nếu việc viết lại thành công, dự kiến sẽ tạo tác động tích cực đến hệ sinh thái Neovim
Tài liệu
- Cung cấp tutorial và hướng dẫn trên website tài liệu của Lux
- Có thể đặt câu hỏi và giải quyết vấn đề thông qua thảo luận GitHub và issue tracker
Giấy phép
- Lux được cung cấp theo giấy phép MIT
- Logo Lux được cung cấp theo giấy phép CC BY-NC-SA 4.0
1 bình luận
Bình luận trên Hacker News