Skip to main content

braid_http_rs/
lib.rs

1//! braid_http_rs: Unified Braid Protocol implementation in Rust.
2//!
3//! This crate consolidates several Braid-related components into a single library:
4//!
5//! - **core**: The core Braid-HTTP protocol implementation (types, parser, client, server).
6//! - **antimatter**: Conflict resolution and state management.
7//! - **blob**: Braid-Blob storage and synchronization service.
8//! - **fs**: Filesystem synchronization client logic.
9
10pub use smallvec;
11pub mod core;
12pub mod vendor;
13
14#[cfg(feature = "antimatter")]
15pub mod antimatter;
16
17#[cfg(feature = "blob")]
18pub mod blob;
19
20#[cfg(feature = "fs")]
21pub mod fs;
22
23#[cfg(all(feature = "wasm", target_arch = "wasm32"))]
24pub mod wasm;
25
26#[cfg(feature = "napi")]
27pub mod node;
28
29pub mod inspector;
30pub use crate::inspector as braid_inspector_logger;
31
32#[cfg(all(
33    feature = "antimatter",
34    feature = "client",
35    not(target_arch = "wasm32")
36))]
37pub mod ffi;
38
39// Top-level re-exports for common usage
40pub use crate::core::error::{BraidError, Result};
41pub use crate::core::types;
42pub use crate::core::types::{BraidRequest, BraidResponse, Patch, Update, Version};
43
44#[cfg(feature = "client")]
45pub use crate::core::client;
46#[cfg(feature = "client")]
47pub use crate::core::client::{BraidClient, ClientConfig, Subscription};
48
49#[cfg(feature = "server")]
50pub use crate::core::server;
51#[cfg(feature = "server")]
52pub use crate::core::server::{BraidLayer, BraidState, ConflictResolver, ServerConfig};
53
54#[cfg(not(target_arch = "wasm32"))]
55pub use crate::core::merge;
56
57#[cfg(feature = "antimatter")]
58pub use crate::antimatter::AntimatterCrdt;
59
60#[cfg(feature = "blob")]
61pub use crate::blob::BlobStore;