Expand description
A crate for interacting with Bindles
Bindle is an aggregate object storage system used for storing aggregate applications. For more information and examples, see the README in the Bindle repo.
This crate is the reference implementation of the Bindle Spec and it contains both a client and a server implementation, along with various other utilities
Modules
- A collection of various utilities for asyncifying things, publicly exposed for convenience of those consuming Bindle as a Rust SDK
- Types and traits for use in authentication. This module is only available if the
server
feature is enabled - Types and traits for use in authorization. This module is only available if the
server
feature is enabled - Caching implementations for client and server-side usage. This module is under heavy development and iteration
- Client implementation for consuming a Bindle API. Although written in Rust, it is not specific to the Rust implementation. It is meant to consume any spec-compliant bindle implementation.
- A filtering library for extracting parcels from a bindle.
- Contains the main invoice object definition, its implementation, and all related subobject (such as
Parcel
s andLabel
s) - The
Provider
trait definition and various implementations. - A proxy provider implementation that forwards all requests to another server using the Bindle client. This requires the
client
feature to be enabled - Common types and traits for use in implementing query functionality for a Bindle server. Note that this functionality is quite likely to change
- Server implementation of the Bindle Protocol Spec, with associated HTTP handlers and functions
- Contains the Signature type along with associated types and Roles
- Functions and types for reading and writing to standalone bindles
- Some helpful utilities for testing. This module is only available if the
test-tools
feature is enabled. Its main feature is allowing the use of prebuilt scaffolds for testing.
Structs
- The specification for a bindle, that uniquely identifies the Bindle and provides additional optional metadata
- Conditions associate parcels to
Group
s - A string error message returned from the server
- A group is a top-level organization object that may contain zero or more parcels. Every parcel belongs to at least one group, but may belong to others.
- A parsed representation of an ID string for a bindle. This is currently defined as an arbitrary path with a version string at the end.
- The main structure for a Bindle invoice.
- A custom type for responding to invoice creation requests. Because invoices can be created before parcels are uploaded, this allows the API to inform the user if there are missing parcels in the bindle spec
- Available query string options for the keyring API
- Metadata of a stored parcel
- Describes the matches that are returned from a query
- A response to a missing parcels request. TOML doesn’t support top level arrays, so they must be embedded in a table
- A description of a stored parcel file
- Available options for the query API
- A signature describes a cryptographic signature of the parcel list.
- An invoice that has been signed and can no longer be modified unless converted back into a normal invoice with the
signed
method
Enums
- Wrap errors related to signing
- The role of a signer in a signature block.
- This enumerates the verifications strategies described in the signing spec.
Constants
- The version string for the v1 Bindle Spec
Traits
- A sealed trait used to mark that an invoice has been signed. This trait cannot be implemented by consumers of the bindle crate
Functions
- Sign the parcels in the invoice using the given list of roles and keys. This is a list of tuples containing a
SignatureRole
andSecretKeyEntry
in that order. Returns aSignedInvoice
Type Definitions
- Alias for annotations map
- Alias for feature map in an Invoice’s parcel