Facebook Announces Open Source Code for Dotslash Utility
Facebook announced the opening of the code for the command line utility called dotslash. This utility was created to simplify the distribution of executable files for different platforms. Written in Rust, the utility code is licensed under MIT and Apache 2.0.
The dotslash utility solves problems similar to Shell scripts for launching executable files on the current platform. However, it eliminates the need to include executable files for all supported platforms. With dotslash, it is possible to store information about the collected executable files in the code repository, while placing the files themselves on separate loading servers. This approach prevents repository size growth and reduces the load on the input/output system during cloning operations.
When using dotslash, a set of executable files is replaced by a description of the logic of selecting the executable file based on different supported platforms. Dotslash dynamically loads the executable file for the current platform, unpacks it, checks its integrity using cryptographic hash, and stores it in a local cache for future launches. The file transmission is done in compressed form. Dotslash scenarios can be automatically generated for releases published on GitHub.
Example of Dotslash Scenarios for Distribution
Platform | Executable File |
---|---|
MacOS ARM64 | Node.js 18.19.0 |
MacOS X86_64 | Node.js 18.19.0 |
Linux X86_64 | Node.js 18.19.0 |