1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
//! brain-db-sdk — Rust client for the Brain memory database.
//!
//! Brain ships no client library; its contract is the wire protocol — a
//! 32-byte `BRN0` frame header plus CBOR payloads over TCP. This crate
//! re-implements that protocol independently (the protocol, not a shared
//! library, is the source of truth) and is verified byte-for-byte
//! against Brain's vendored conformance corpus.
//!
//! The [`wire`] module is the codec: the frame codec ([`wire::frame`]),
//! the CBOR payload codec ([`wire::cbor`]), the opcode table
//! ([`wire::opcode`]), and the typed payload structs ([`wire::types`]) for
//! the handshake and the verbs — all runtime-agnostic and verified against
//! the corpus.
//!
//! Layered on top: [`transport`] reads/writes whole frames over an async byte
//! stream, [`mux`] is the multiplexed [`MuxConnection`] (a background reader
//! task demultiplexes responses by `stream_id`) — the one connection type — and
//! [`client`] is the high-level [`BrainClient`] built on it — every verb takes
//! `&self`, so one client serves concurrent requests. [`verbs`] holds the
//! ergonomic request builders, [`retry`] the backoff combinator, and [`pool`] a
//! fixed-size connection pool for socket-level parallelism. Transparent
//! reconnect and connection-pool health-checking are the remaining later work.
pub use ;
pub use ;
pub use ;
pub use Pool;
pub use ;
pub use ;
// HTTP tier — the hosted-edge client (talks to `brain-edge` / the Arc gateway).
// Only the client + error are re-exported at the root (unique names); the
// contract types live under `http::` to avoid colliding with the wire types.
pub use ;