objectstore_client/
lib.rs

1//! # Objectstore Client
2//!
3//! The client is used to interface with the objectstore backend. It handles responsibilities like
4//! transparent compression, and making sure that uploads and downloads are done as efficiently as
5//! possible.
6//!
7//! ## Usage
8//!
9//! ```no_run
10//! use objectstore_client::{ClientBuilder, Usecase};
11//!
12//! #[tokio::main]
13//! # async fn main() -> objectstore_client::Result<()> {
14//! let client = ClientBuilder::new("http://localhost:8888/").build().unwrap();
15//! let usecase = Usecase::new("usecase");
16//! let session = client.session(usecase.for_project(12345, 1337)).unwrap();
17//!
18//! let response = session.put("hello world").send().await?;
19//! let object = session.get(&response.key).send().await?.expect("object to exist");
20//! assert_eq!(object.payload().await?, "hello world");
21//! # Ok(())
22//! # }
23//! ```
24#![warn(missing_docs)]
25#![warn(missing_debug_implementations)]
26
27mod client;
28mod delete;
29mod error;
30mod get;
31mod put;
32
33pub use objectstore_types::{Compression, ExpirationPolicy};
34
35pub use client::*;
36pub use delete::*;
37pub use error::*;
38pub use get::*;
39pub use put::*;
40
41#[cfg(test)]
42mod tests;