เห็นใน feed ของ reddit มีการแนะนำ Rye
ซึ่งเป็น python package manager ที่เขียนด้วยภาษา Rust
โดยมีแรงบันดาลใจจาก Cargo นั่นเอง
เป้าหมายของ Rye คือ
- Speed
- Security
- Simplicity
เมื่อไปอ่านหัวข้อ Philosophy and Vision พบว่าน่าสนใจดังนี้
ทำการสร้างมาเพื่อแก้ไขปัญหาที่พบเจอ เช่น
- ปัญหาจากการใช้งาน virtualenvs ไม่มีทั้ง dependency ต่าง ๆ ที่ต้องใช้งาน
- ไม่มีตัวจัดการ version ของ python ยิ่งต่าง OS ยิ่งลำบาก
- ไม่มีการจัดการ local dependency ให้
- ไม่มี workspace ให้ใช้
- ไม่มี basic script section สำหรับการ run คำสั่งต่าง ๆ ของ project
ดังนั้นจึงสร้าง Rye ขึ้นมา เพื่อแก้ไขัญหาเหล่านี้
ก่อนใช้งานนั้นใน Python มีเครื่องมือในการจัดการ dependency ต่าง ๆ ดังนี้
- pip
- poetry
- condo
- venv
- virtualenv
มาลองใช้งาน Rye กันดู
เริ่มที่ติดตั้งก่อน ใช้งานบน MacOS
ตรวจสอบการติดตั้ง ซึ่งมีการ download Python มาให้เลย
ทำการสร้าง project ด้วย Rye
จะมีไฟล์ pyproject.toml สำหรับอธิบาย project ว่ามีชื่ออะไร
ใช้ dependency อะไรบ้าง
ใช้ toolchain อะไร
มี script อะไรบ้าง เป็นต้น
จากนั้นทำการ sync project นั่นคือ
ให้ Rye ทำการ initial project ขึ้นมา ทำงานดังนี้
- สร้าง virtualenv ให้
- ทำการ download dependency ให้
ทำการเพิ่ม dependency และเขียน code กันเลย
ลองใช้งาน Flask นิดหน่อย
Code ไฟล์ app.py สำหรับสร้าง web server
จากนั้นก็ run แบบง่าย ๆ ด้วย Rye
ยังไม่พอ ยังมี tool chain อื่น ๆ ให้ใช้งาน
- rye lint
- rye format
- rype build
ลองใช้งานกันดูครับ น่าสนใจมาก ๆ
Reference Websites