Development starting Kind of working, still under development.
binst
's goal is to provide a simple way to publish and install Rust-based binaries without the need for cargo-install or OS-dependent package managers' complexity.
In short, supports publishing the release binary to a custom S3 via env and profile, and installing via publish https/http or S3 via env/profile.
Note - There other similar projects. Use what works for you. This one is under heavy development for now.
On the development machine, cargo install (can install the binary way as well)
sh
cargo install binst
On the install machine, binary install ```sh
curl -O https://binst.io/self/binst/x86_64-unknown-linux-gnu/v0.1.0-rc-1/binst.tar.gz
curl -O https://binst.io/self/binst/x86_64-apple-darwin/v0.1.0-rc-1/binst.tar.gz
tar -xvf binst.tar.gz
./binst self
```
Note: You need to have a AWS S3 repository and the credential either as environment variables or as a aws profile
On the development machine, to publish to a repo.
```sh
binst publish -r s3://myrepobucket/reporoot --profile myaws_profile ```
On other machines, once binst installed (see below for the binary only version install)
```sh
binst install coolcli -r s3://mydomain.com/myrepo
binst install cool_cli -r https://
cool_cli ....
```
Note: For now a
binst install ...
will reinstall the binary for the latest version. It won't do any semver comparison.
binst
is not for end-users, but for developers and the technical community.Assuming the command:
sh
binst install cool_cli -r s3://my-bucket/my_repo
Binst will look at
- Will get the info.toml
for the s3://my-bucket/my_repo/cool_cli/[arch-target]/info.toml
- Will read the stable.version
(latest stable version) property from the info.toml
- Will download the
- s3://my-bucket/my_repo/cool_cli/[arch-target]/v[semver]/cool_cli.tar.gz
- In the $HOMDIR/.binst/packages/cool_cli/v[semver]/cool_cli.tar.gz
- Unpack the cool_cli.tar.gz
into $HOMDIR/.binst/packages/cool_cli/v[semver]/unpacked/
- Do a symlink from $HOMDIR/.binst/bin/cool_cli --> $HOMDIR/.binst/packages/cool_cli/v[semver]/unpacked/cool_cli
It contains only one version stable, which will be taken into account when doing an install. (will allow installing specific version later)
e.g., s3://my-bucket/my_repo/cool_cli/[arch-target]/info.toml
toml
[stable]
version = "0.3.2"
https://doc.rust-lang.org/nightly/rustc/platform-support.html