Binary Dealer is a Rust-based tool designed to streamline the distribution and managemen t of static binary files across multiple projects. With an emphasis on version control and e ase of access, Binary Dealer aims to facilitate the seamless retrieval and deployment of bin aries, while automating the build process as it evolves.
- Static Binary Serving: Initially, the server will serve static binary files, making it easy to access precompiled binaries for various projects.
- Version Management: Manage multiple versions of binaries efficiently and serve them up on request.
- Automated Compilation: Future iterations will include automated compilation of binarie s from their source code, ensuring up-to-date versions are readily available.
- Event-Driven Updates: Ultimately, the tool will be enhanced to compile binaries automa tically whenever new tags or releases are available in the source repositories.
-
Phase 1: Serve static binary files
- During this phase, the server will be set up to serve binaries that are manually compil ed and placed in the designated directory.
-
Phase 2: Automate Compilation
- Implement additional automation features to facilitate the compilation process, reducin g manual effort.
-
Phase 3: Event-Driven Compilation
- Integrate event-driven compilation that triggers builds based on updates in source repo sitories, ensuring all binaries are current and accessible.
Binary Dealer is built using Axum as its core dependency, which provides the foundationa l capabilities needed for the server functionality.
To get started with Binary Dealer, follow these steps:
-
Clone the repository:
git clone https://github.com/zingolabs/binary-dealer.git cd binary-dealer
-
Build the project:
cargo build --release
-
To enable TLS with a self-signed certificate and then return to the project's root folder:
cd self_signed_certs openssl req -newkey rsa:4096 -x509 -sha512 -days 500 -nodes -out cert.pem -keyout key.pem cd ..
-
Run the server:
cargo run --release
-
Place your precompiled binaries in the specified directory for access.