- เป็นเครื่องมือทดแทน
pre-commit ที่สร้างขึ้นเพื่อเพิ่ม ความเร็วและประสิทธิภาพในการจัดการ Git hook โดยยังคง ความเข้ากันได้ของการตั้งค่าและ hook เดิม
- มาพร้อมกับ ไฟล์รันเดี่ยวที่พัฒนาด้วย Rust และลดเวลาติดตั้งและรัน hook ด้วย โครงสร้างการประมวลผลแบบขนาน
- มีการนำไปใช้แล้วในโปรเจ็กต์สำคัญอย่าง CPython, Apache Airflow, FastAPI, Home Assistant เป็นต้น
- รองรับ การจัดการแบบรวมศูนย์ของ toolchain หลายภาษา เช่น Python, Node.js, Go, Rust, Ruby
- การผสานรวมกับ
uv ช่วยเพิ่มความเร็วในการสร้าง Python virtual environment และติดตั้ง dependency
- รองรับสภาพแวดล้อม workspace (monorepo) เป็นค่าเริ่มต้น และตั้งค่าแยกตามแต่ละซับโปรเจ็กต์ได้
- มี คำสั่ง CLI ที่ปรับปรุงแล้ว เช่น
prek run, prek list, prek auto-update
- ใช้ตัวเลือก
--directory, --last-commit เพื่อตรวจสอบเฉพาะไดเรกทอรีหรือเฉพาะคอมมิตล่าสุดได้
- ใช้ตัวเลือก
--cooldown-days เพื่อมอบ ฟีเจอร์บรรเทาการโจมตีซัพพลายเชน
- มี hook ทั่วไปบางส่วน ฝังมาแบบ Rust native เพื่อรองรับการทำงานแบบออฟไลน์และแบบไม่ต้องตั้งค่า
- ใบอนุญาต MIT
- พัฒนาโดยได้รับแรงบันดาลใจจากโปรเจ็กต์
uv ของ Astral
5 ความคิดเห็น
มีเรื่องที่ผมสงสัยอยากถามนักพัฒนาครับ ว่าทำไมช่วงหลังนี้โปรเจกต์ส่วนใหญ่ถึงมักพัฒนาด้วย Rust มากกว่า Golang? เหตุผลที่ใหญ่ที่สุดเป็นเพราะมีหรือไม่มี GC ใช่ไหม?
โปรเจ็กต์นี้คงไม่ถึงขั้นที่ GC จะกลายเป็นปัญหาได้ครับ ผมมองว่าในบรรดา "โปรเจ็กต์ส่วนใหญ่ในช่วงหลัง" การเลือกใช้ภาษาโปรแกรมมิงจริง ๆ แล้วหลายครั้งก็เป็นเรื่องของความชอบมากกว่าจะเป็นเพราะข้อดีหรือข้อจำกัดของภาษานั้น ๆ ถึงอย่างนั้น ถ้าถามว่าในฐานะภาษาโปรแกรมมิงเอนกประสงค์ Rust มีข้อได้เปรียบเชิงเปรียบเทียบเหนือ Go ตรงไหน ผมก็คงตอบว่าคือระดับของ abstraction ที่ Rust มอบให้ และความสามารถในการจับข้อผิดพลาดได้หลายอย่างตั้งแต่ตอนคอมไพล์ แน่นอนว่า Go เองก็มีข้อดีเหนือ Rust เช่น การเขียน asynchronous programming ได้ง่ายกว่า เวลาในการคอมไพล์ที่เร็วกว่า และไวยากรณ์ที่กระชับกว่า เป็นต้น
ก็เป็นแค่การคาดเดานะครับ แต่คิดว่าน่าจะเป็นเพราะอุปสรรคในการเริ่มต้นกับ Rust หายไปแล้ว
ปัญหาใหญ่ที่สุดคือเขียนโค้ดแล้วคอมไพล์ไม่ผ่านอยู่เรื่อย ๆ แต่ว่า AI ช่วยทำแทนให้ได้ไงครับ
Rust มีสัดส่วนของข้อผิดพลาดที่ถูกจับได้ตอนคอมไพล์ค่อนข้างมาก เลยให้ความรู้สึกว่าการคอมไพล์ไม่ผ่านกลับช่วยให้ AI เดินไปในทางที่ถูกต้องมากขึ้น
อันนี้ดีเลยนะ