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.

Scope and Concepts

CLI Examples

First overview

```sh

setup and install binst under ~/.binst/bin/binst

./binst setup

Install the stable version of a deployed binary (See below)

binst install mydomain.com/myrepo/coolcli

Install will publish the current binary (--release binary) to the bucket using the .aws/config&credentials profile

the version and arch-target will be inferred from the current machine/build

binst publish s3://myrepobucket --profile myawsprofile ```

Remote store structure

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)

info.toml format

```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"

```

Local directory store

Local config

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"

```

Targets

https://doc.rust-lang.org/nightly/rustc/platform-support.html