feat(cluster): RFC 010 c1 — cluster feature flag + optional serde/postcard deps
Off by default; the default build stays libc-only. serde (payload contract) and postcard (payload codec) are optional, no default features. src/cluster.rs is an intentionally empty cfg-gated stub so the flag's default-build invariance is reviewable in isolation.
This commit is contained in:
@@ -33,6 +33,11 @@ budget-accounting = []
|
|||||||
# and unflagged; only the optional gen_server transport sits behind this, so a
|
# and unflagged; only the optional gen_server transport sits behind this, so a
|
||||||
# release build pays nothing for an observer it never starts.
|
# release build pays nothing for an observer it never starts.
|
||||||
observer = []
|
observer = []
|
||||||
|
# RFC 010 c1: clustering. Off by default — the default build stays libc-only,
|
||||||
|
# byte-for-byte (gate checked per phase). serde is the payload contract,
|
||||||
|
# postcard the payload codec; both minimal (no default features). Everything
|
||||||
|
# cluster-shaped lives behind this flag.
|
||||||
|
cluster = ["dep:serde", "dep:postcard"]
|
||||||
# Run-queue selection: exactly one, compile-time (see src/run_queue.rs).
|
# Run-queue selection: exactly one, compile-time (see src/run_queue.rs).
|
||||||
# Non-default variants need --no-default-features (features are additive).
|
# Non-default variants need --no-default-features (features are additive).
|
||||||
rq-mutex = []
|
rq-mutex = []
|
||||||
@@ -44,6 +49,9 @@ cc = "1"
|
|||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
libc = "0.2"
|
libc = "0.2"
|
||||||
|
# RFC 010 §2 — only compiled under `--features cluster`.
|
||||||
|
serde = { version = "1", default-features = false, optional = true }
|
||||||
|
postcard = { version = "1", default-features = false, optional = true }
|
||||||
|
|
||||||
[target.'cfg(loom)'.dependencies]
|
[target.'cfg(loom)'.dependencies]
|
||||||
loom = "0.7"
|
loom = "0.7"
|
||||||
|
|||||||
@@ -0,0 +1,6 @@
|
|||||||
|
//! RFC 010 — clustering (smarm⇄smarm, explicit remote boundary).
|
||||||
|
//!
|
||||||
|
//! c1: feature flag + optional deps only. The owned envelope (c2), transport
|
||||||
|
//! trait (c3), and everything above them land in later chunks. This module is
|
||||||
|
//! intentionally empty so the `cluster` feature's default-build invariance is
|
||||||
|
//! reviewable in isolation.
|
||||||
@@ -14,6 +14,8 @@
|
|||||||
pub mod actor;
|
pub mod actor;
|
||||||
pub mod causal;
|
pub mod causal;
|
||||||
pub mod channel;
|
pub mod channel;
|
||||||
|
#[cfg(feature = "cluster")]
|
||||||
|
pub mod cluster;
|
||||||
pub mod context;
|
pub mod context;
|
||||||
pub mod gen_server;
|
pub mod gen_server;
|
||||||
pub mod gen_statem;
|
pub mod gen_statem;
|
||||||
|
|||||||
Reference in New Issue
Block a user