Skip to main content

tsafe_collab/
lib.rs

1//! Optional collaboration service integration for tsafe.
2//!
3//! Implements the `CollabRemote` trait — a transport abstraction over the
4//! tsafe collab-service REST API — plus an in-memory stub for testing.
5//! Recovery-key Shamir split/reconstruct helpers live in `recovery`.
6//!
7//! ## Architecture (ADR-027)
8//!
9//! `tsafe-core` MUST NOT import or depend on this crate.  The dependency
10//! direction is strictly:
11//!
12//! ```text
13//! tsafe-collab  →  (ureq, age, serde, thiserror, uuid, chrono, sharks)
14//! tsafe-cli     →  tsafe-collab   [feature = "collab"]
15//! ```
16//!
17//! `tsafe-core` is not in this graph.
18//!
19//! ## Feature gate
20//!
21//! Add `--features collab` to the CLI build to pull this crate in.
22//! The crate compiles and passes all tests without a live collab-service.
23
24pub mod error;
25pub mod recovery;
26pub mod remote;
27pub mod stub;
28pub mod types;
29
30pub use error::CollabError;
31pub use recovery::{reconstruct_recovery_key, split_recovery_key};
32pub use remote::CollabRemote;
33pub use stub::StubServer;
34pub use types::{DekEnvelope, InviteRecord, InviteToken, MemberEntry};