v0.5.0
Pre-releaseThis is the 0.5 feature release for Bindle. The main feature in this release is alpha level authentication support and a more efficient default storage option.
Installing
You can download the prebuilt binaries for the Bindle CLI client and the Bindle server from the following links:
Once downloaded, you can follow the installation and getting started instructions
Using as a crate
Besides the pre-compiled binaries, we also publish a fully featured crate (that the binaries also use). You can find docs here.
Caveats
Please note that this is NOT production-ready software, but it is in a usable/consumable state. Because this is pre-1.0 software, we make no guarantees about spec, Rust API, or CLI compatibility. However, we will do our best to call out every breaking change in future release notes. Once we hit 1.0, backwards compatibility guarantees will be in effect.
Major Features
- Bindle server now supports authentication using HTTP Basic auth and OIDC token auth. Please note that the authentication behavior and
/login
endpoint is still very much in beta and could change in the future
Binary specific
bindle-server
now has an optional embedded database option that provides better performance than the old filesystem method. This can be turned on by using the--use-embedded-db
option. In the future, the filesystem storage for bindle server will be removed and replaced with the embedded DB option- If authentication is enabled, the default authorization scheme will allow anonymous GET requests. All other create or modify operations will require an authenticated user. More complex authorization schemes will be enabled in the future
Crate specific
- The
Client
now has support for various authentication strategies, as well as support for refresh tokens
Bug Fixes
- The
http2_prior_knowledge
config option on the client now defaults tofalse
. Having it set to true as a default was leading to various configuration issues with downstream consumers of a bindle server
Known Issues/Missing Features
- The standalone bindle implementation does not currently handle tarballs. This will be added in a future release
- Signing and verification is not automatically done in the
Client
or thebindle
CLI
Breaking Changes
- The
Client
struct now requires aTokenManager
in order to construct. There are various token authentication methods provided that are available atbindle::client::tokens
:
pub struct Client<T> {
...
}
impl<T: tokens::TokenManager> Client<T> {
pub fn new(base_url: &str, token_manager: T) -> Result<Self> {
...
}
...
}
What's next?
Our next anticipated version is 0.6.0 (although we will cut a 0.5.1 if necessary). Our main focus for 0.6 will be finishing signing and verification on the Client, adding support for multiple concurrent authentication methods, and adding more authorization. Please give things a try and feel free to open PRs or issues with your feedback. In fact, your feedback is crucial as we continue to solidify the spec and features desired in Bindle!