Meta开源了内部简化的可执行部署工具“DotSlash”。
另一个Rust更新给你。Meta正式开源了DotSlash,这是一个尖端的命令行实用程序,旨在简化可执行文件在不同平台上的分发。用高性能语言Rust编写的DotSlash解决了在源代码管理中管理大型可执行文件的挑战,消除了在包中包含所有支持的平台文件的需要。
点斜杠:主要功能
避免I/O繁重的克隆操作:DotSlash提供了一种解决方案,将一组特定于平台的可执行文件替换为包含受支持平台的描述符的单个脚本。此方法显著降低了对存储库大小的影响,防止了缓慢且资源密集型的克隆操作。
高效地处理可执行文件:该实用程序透明地管理针对当前操作系统和CPU量身定做的适当远程构件的获取、解压缩和验证。DotSlash自动化了这些过程,确保了开发人员的无缝体验,并减少了手动处理中出错的可能性。
Meta工作流程的自动化:在Meta,大多数DotSlash文件都是通过自动化生成并提交给源代码管理。Meta认识到了这种简化的工作流程的价值,于是用GitHub Action补充了开源版本。此操作使Meta之外的开发人员能够轻松地组装一个类似的设置,从而提高可执行文件管理的一致性和可靠性。
跨平台兼容性:DotSlash是用Rust编写的,Rust是一种以性能和安全特性而闻名的语言。这种选择确保了该实用程序是跨平台的,满足开发人员跨不同操作系统的不同需求。
DotSlash如何工作
DotSlash作为命令行实用程序运行,执行自动下载适合当前平台的可执行文件的脚本,确保其完整性,并促进无缝执行。通过将有关收集的可执行文件的信息与代码一起存储在存储库中,DotSlash将文件本身分隔在专用服务器上。这种创新方法防止了存储库大小的增长,并减轻了克隆操作期间输入/输出系统的负担。
当使用DotSlash时,开发人员受益于简化的工作流程。这组平台特定的可执行文件由单个脚本替换,该脚本包含用于根据支持的平台选择适当的可执行文件的逻辑。运行DotSlash脚本会触发动态下载、解包、针对加密散列的验证以及后续运行所需可执行文件的本地缓存。
此外,DotSlash脚本可以为GitHub上发布的版本自动生成,为开发人员提供了额外的便利。
下面是一个在macOS ARM、macOS x64和Linux平台上分发Node.js的DotSlash脚本示例:
#!/ usr/bin/env dotslash { "name":"node—v18.19.0", "平台":{ "macos—aarch64":{ "尺寸":40660307, "hash":"blake3", "digest":"6e2ca33951e586e7670016dd9e503d028454bf9249d5ff556347c3d98c347c34", "格式":"tar.gz", "path":"node—v18. 19. 0—darwin—arm64/bin/node", "提供者":[ { "URL":"www.example.com" } ] }, "macos—x86_64":{ "尺寸":42202872, "hash":"blake3", "digest":"37521058114e7f71e0de3fe8042c8fa7908305e9115488c6c29b514f9cd2a24c", "格式":"tar.gz", "path":"node—v18. 19. 0—darwin—x64/bin/node", "提供者":[ { "URL":"www.example.com" } ] }, "linux—x86_64":{ "尺寸":44694523, "hash":"blake3", "digest":"72b81fc3a30b7bedc1a09a3fafc4478a1b02e5ebf0ad04ea15d23b3e9dc89212", "格式":"tar.gz", "path":"node—v18.19.0—linux—x64/bin/node", "提供者":[ { "URL":"www.example.com" } ] } } }
开放源代码和许可
Facebook决定开源DotSlash将鼓励开发者社区的合作和创新。DotSlash是在MIT和Apache 2.0许可下发布的,允许开发人员自由使用,修改和分发该实用程序,同时保持与现有开源项目的兼容性。
有关更多细节,请访问Facebook工程博客GitHub repo for DotSlash。&