calimero_client/lib.rs
1//! Calimero Client Library
2//!
3//! A comprehensive, abstract client library for interacting with Calimero APIs.
4//! This library provides trait-based abstractions for authentication, storage,
5//! and API communication, making it easy to implement different client types
6//! (CLI, GUI, headless, etc.) while sharing common functionality.
7//!
8//! ## Features
9//!
10//! - **Abstract Interfaces**: Trait-based design for maximum flexibility
11//! - **Authentication**: Support for various authentication methods
12//! - **Token Storage**: Abstract token management with multiple backends
13//! - **HTTP Client**: Robust HTTP client with retry and error handling
14//! - **Async Support**: Full async/await support throughout
15//! - **Python Bindings**: Optional Python bindings via PyO3
16
17pub mod auth;
18pub mod client;
19pub mod connection;
20pub mod errors;
21pub mod storage;
22pub mod traits;
23
24// Re-export main types for easy access
25pub use auth::{CliAuthenticator, MeroctlOutputHandler};
26pub use client::{Client, ResolveResponse, ResolveResponseValue};
27pub use connection::{AuthMode, ConnectionInfo};
28pub use errors::ClientError;
29pub use eyre::Result;
30pub use storage::{get_session_cache, JwtToken};
31pub use traits::{ClientAuthenticator, ClientConfig, ClientStorage};
32// Re-export common types
33pub use url::Url;
34
35/// Current version of the client library
36pub const VERSION: &str = env!("CARGO_PKG_VERSION");
37
38#[cfg(test)]
39use tokio_test as _;