- Lux เป็นตัวจัดการแพ็กเกจใหม่สำหรับการสร้าง ดูแลรักษา และเผยแพร่โค้ด Lua โดยมีเป้าหมายเพื่อสร้างระบบนิเวศที่เหมาะกับ Lua
- Lux มี CLI ที่เรียบง่ายและใช้งานได้อย่างเป็นธรรมชาติ โดยได้แรงบันดาลใจจากตัวจัดการแพ็กเกจที่เป็นที่รู้จักอย่าง
cargo
ฟีเจอร์
- พกพาข้ามระบบได้อย่างสมบูรณ์
- รองรับการบิลด์และติดตั้งแบบขนาน 🚀
- จัดการการติดตั้ง Lua headers ให้อัตโนมัติ
- เปิดเผย Lua API ได้ผ่าน
lux-lib crate
- จัดการโปรเจ็กต์ผ่านไฟล์
lux.toml
- สร้าง rockspec อัตโนมัติ
- รองรับ lockfile อย่างแข็งแกร่ง
- บิลด์และสภาพแวดล้อมสำหรับพัฒนาที่ทำซ้ำได้อย่างสมบูรณ์
- ผสานรวมการจัดรูปแบบโค้ดและ linting
- รองรับการรันทดสอบผ่าน
busted
- สามารถใช้ Neovim เป็น Lua interpreter ได้
- ตั้งค่าสภาพแวดล้อมแบบบริสุทธิ์
- เข้ากันได้กับระบบนิเวศ luarocks
แรงจูงใจ
Lua
- Luarocks มีประวัติยาวนาน 20 ปี จึงไม่เหมาะกับการพัฒนา Lua สมัยใหม่
- Lux มีเป้าหมายที่จะเป็นการเริ่มต้นใหม่
- ใช้ TOML เป็นรูปแบบ manifest หลักสำหรับจัดการ dependencies
- สามารถบิลด์และติดตั้งโปรเจ็กต์จากไดเรกทอรีของโปรเจ็กต์ด้วยคำสั่ง
build
- บังคับให้ปฏิบัติตาม SemVer
- รองรับการบิลด์แบบขนาน
Neovim
- ได้รับความนิยมเพิ่มขึ้นจากการรองรับ Luarocks ของตัวจัดการปลั๊กอิน Neovim อย่าง
rocks.nvim และ lazy.nvim
- Lux ไม่ทำลายโครงสร้างเดิมและไม่แทรกแซงวิธีเผยแพร่ปลั๊กอิน Neovim
- สามารถติดตั้งแพ็กเกจในโครงสร้าง tree ที่เข้ากันได้กับ Neovim ด้วยแฟล็ก
--nvim
Nix
- หากปลั๊กอิน Neovim มีอยู่ในรูปแบบแพ็กเกจ Luarocks ก็สามารถนำไปใช้ใน
nixpkgs ได้
lux.lock ของ Lux จะเก็บซอร์สของ dependency แต่ละตัวและค่าแฮชของ rockspec
ขั้นตอนถัดไป
- มุ่งเน้นที่การแก้บั๊กและปรับปรุงข้อความแสดงข้อผิดพลาด
- มีแผนจะเขียน
rocks.nvim ใหม่บนพื้นฐานของ Lux
- หากการเขียนใหม่สำเร็จ คาดว่าจะส่งผลเชิงบวกต่อระบบนิเวศ Neovim
เอกสาร
- มีบทแนะนำและคู่มือให้ในเว็บไซต์เอกสารของ Lux
- สามารถถามคำถามและแก้ปัญหาได้ผ่าน GitHub Discussions และ issue tracker
ไลเซนส์
- Lux เผยแพร่ภายใต้ไลเซนส์ MIT
- โลโก้ Lux เผยแพร่ภายใต้ไลเซนส์ CC BY-NC-SA 4.0
1 ความคิดเห็น
ความคิดเห็นบน Hacker News