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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
//! Storage and network adapters for BEAM.
//!
//! This module contains all adapter implementations that connect the
//! [`crate::Node`] graph engine to external systems:
//!
//! # Storage Adapters
//!
//! - [`MemoryStorage`] — in-memory `HashMap`-backed storage (default)
//! - [`RedbStorage`] — persistent embedded storage via [`redb`] (native only)
//!
//! # Storage Read/Write Split
//!
//! Storage adapters that implement [`Actor::try_clone_storage`] are started
//! as two actors by the Router: a read actor (receives `Get`) and a write
//! actor (receives `Put`, `BatchPut`, `Flush`). Both share the same
//! underlying store via `Arc`, so reads see committed writes immediately.
//!
//! - [`RedbStorage`] splits — the write actor's `spawn_blocking` fsync no
//! longer blocks the read actor's concurrent `Get` queries.
//! - [`MemoryStorage`] does not split — in-memory writes are synchronous
//! (no fsync), so splitting provides no benefit and would break
//! read-after-write ordering.
//!
//! # Network Adapters
//!
//! - [`OutgoingWebsocketManager`] — outgoing WebSocket client manager (native only)
//! - [`WsServer`] — incoming WebSocket server with optional TLS (native only)
//! - [`WsConn`] — per-connection WebSocket actor (native only)
//! - [`Multicast`] — UDP multicast LAN discovery (native only)
//! - [`WebRtcPeer`] — WebRTC data channel P2P connection (feature-gated)
//!
//! # Adapter Protocol
//!
//! All adapters implement the [`crate::actor::Actor`] trait and receive
//! [`crate::message::Message`] via the actor system. Storage adapters
//! handle `Get`, `Put`, `BatchPut`, and `Flush`. Network adapters
//! handle `Put` and `Get` by serializing to the wire format and
//! forwarding to remote peers.
pub use MemoryStorage;
pub use Multicast;
pub use PersyStorage;
pub use RedbStorage;
pub use OutgoingWebsocketManager;
pub use WsConn;
pub use ;
pub use WasmWsConn;
pub use WasmIdbStorage;
pub use ;