Development starting NO functioning code yet.
binst
's goal is to provide a simple way to publish and install Rust based binaries without the need of cargo-install and the complexity of OS dependent package managers.
Note - There is another interesting project, binstall which seems to be functioning, but have a different approach.
binst
is not for end-users, but more for developers and the technical community.binst
just gives a structure and commands to share binaries simply. Anything more complicated should use real package managers.First overview
```sh
./binst setup
binst install mydomain.com/myrepo/coolcli
binst publish s3://myrepobucket --profile myawsprofile ```
Assuming the command:
sh
binst install mydomain.com/my_repo/cool_cli
Binst will look at
- Will get the info.toml
for the https://mydomain.com/my_repo/cool_cli/[arch-target]/info.toml
- Will read the stable.version
(latest stable version) property from the info.toml
- Will download the
- https://mydomain.com/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
e.g., under the https://mydomain.com/myrepo/coolcli
x86_64-apple-darwin/
info.toml (latest.version = "0.1.3")
v0.1.3/
create_name.tar.gz (the package)
```toml [stable] # should be the latest stable version version = "0.3.2"
[xp] # should be the latest experimental/experiment version = "0.3.4-beta-2"
```
second phase
~/.binst-cfg.toml
```toml [repo.myrepo] [repo.myrepo.install] url = "https://my-site-for-repos/my-repos" key = "somekey" secret = "somesecret" profile = "myawsprofile" [repo.myrepo.publish] url = "s3://mybinstrepobucket/myrootpath" key = "somekey" secret = "somesecret" profile = "myaws_profile"
```
https://doc.rust-lang.org/nightly/rustc/platform-support.html