Facebook ประกาศเปิดตัวยูทิลิตี้บรรทัดคำสั่ง dotslash แบบโอเพนซอร์ส ซึ่งออกแบบมาเพื่อลดความซับซ้อนในการกระจายไฟล์ปฏิบัติการสำหรับแพลตฟอร์มต่างๆ ยูทิลิตี้นี้ออกแบบมาเพื่อรันสคริปต์ที่ทำการดาวน์โหลดไฟล์ปฏิบัติการที่เหมาะสมกับแพลตฟอร์มปัจจุบัน การตรวจสอบความสมบูรณ์ และการดำเนินการโดยอัตโนมัติ โค้ดของยูทิลิตี้นี้เขียนด้วยภาษา Rust และเผยแพร่ภายใต้ใบอนุญาต MIT และ Apache 2.0
โปรแกรมนี้ทำงานคล้ายกับสคริปต์เชลล์สำหรับการเรียกใช้ไฟล์ปฏิบัติการสำหรับแพลตฟอร์มปัจจุบัน แต่ช่วยลดความจำเป็นในการรวมไฟล์ปฏิบัติการสำหรับทุกแพลตฟอร์มที่รองรับ นอกจากนี้ DotSlash ยังช่วยให้คุณจัดเก็บข้อมูลเกี่ยวกับไฟล์ปฏิบัติการที่คอมไพล์แล้วไว้ในที่เก็บข้อมูลพร้อมกับโค้ด ในขณะที่จัดเก็บไฟล์เหล่านั้นไว้ในดิสก์บูตแยกต่างหาก เซิร์ฟเวอร์ซึ่งจะช่วยให้คุณหลีกเลี่ยงการเพิ่มขนาดของพื้นที่จัดเก็บข้อมูลและลดภาระของระบบ I/O เมื่อทำการโคลนนิ่ง
เมื่อใช้ DotSlash ชุดไฟล์ปฏิบัติการเฉพาะแพลตฟอร์มจะถูกแทนที่ด้วยสคริปต์เดียว ซึ่งประกอบด้วยคำอธิบายตรรกะการเลือกไฟล์ปฏิบัติการที่เฉพาะเจาะจงสำหรับแพลตฟอร์มที่รองรับ หลังจากเรียกใช้สคริปต์ DotSlash ไฟล์ปฏิบัติการที่จำเป็นสำหรับแพลตฟอร์มปัจจุบันจะถูกดาวน์โหลดแบบไดนามิก แตกไฟล์ ตรวจสอบโดยใช้แฮชเข้ารหัส และบันทึกไว้ในแคชภายในเครื่องสำหรับการเรียกใช้ครั้งต่อไป ไฟล์จะถูกถ่ายโอนในรูปแบบบีบอัด สคริปต์ DotSlash สามารถสร้างโดยอัตโนมัติสำหรับรุ่นที่เผยแพร่บน GitHub
ตัวอย่างสคริปต์ DotSlash สำหรับการแจกจ่าย Node.js 18.19.0 builds สำหรับ macOS ARM64, macOS x86_64 และ Linux x86_64: #!/usr/bin/env dotslash { "name": "node-v18.19.0", "platforms": { "macos-aarch64": { "size": 40660307, "hash": "blake3", "digest": "6e2ca33951e586e7670016dd9e503d028454bf9249d5ff556347c3d98c347c34", "format": "tar.gz", "path": "node-v18.19.0-darwin-arm64/bin/node", "providers": [ { "url": "https://nodejs.org/dist/v18.19.0/node-v18.19.0-darwin-arm64.tar.gz" } ] }, "macos-x86_64": { "size": 42202872, "hash": "blake3", "digest": "37521058114e7f71e0de3fe8042c8fa7908305e9115488c6c29b514f9cd2a24c", "format": "tar.gz", "path": "node-v18.19.0-darwin-x64/bin/node", "providers": [ { "url": "https://nodejs.org/dist/v18.19.0/node-v18.19.0-darwin-x64.tar.gz" } ] }, "linux-x86_64": { "size": 44694523, "hash": "blake3", "digest": "72b81fc3a30b7bedc1a09a3fafc4478a1b02e5ebf0ad04ea15d23b3e9dc89212", "format": "tar.gz", "path": "node-v18.19.0-linux-x64/bin/node", "providers": [ { "url": "https://nodejs.org/dist/v18.19.0/node-v18.19.0-linux-x64.tar.gz" } ] } } }
ที่มา: opennet.ru
