Expand description
Fleet engine for keyspace-v2 tooling (issue #15).
The shared core of zenctl and zengui: everything a bus explorer needs
that is not presentation. The RFC 05 §2.1 fan-in discipline lives in
exactly one place (query::fleet_get, moved verbatim from zenctl —
target All, consolidation None, attribution by the reply’s own key);
the liveliness roster, registry-slice sets, and the schema-aware decode
seam build on it.
Sessions opened here are deliberately un-namespaced (RFC 09 §5): an explorer sees the wire as it really is, full keys included — that is what lets it spot a leak. Do not “fix” this by setting a namespace.
Re-exports§
pub use admin::AdminEntry;pub use admin::Coverage;pub use admin::CoverageRow;pub use admin::RouterInfo;pub use admin::StorageInfo;pub use admin::admin_get;pub use admin::routers;pub use admin::state_coverage;pub use admin::storages;pub use discover::AliveToken;pub use discover::DiscoveredBase;pub use discover::discover_bases;pub use query::Answer;pub use query::FleetAnswer;pub use query::StateSample;pub use query::fleet_get;pub use query::fleet_registry;pub use query::state_snapshot;pub use registry::SliceSet;pub use roster::roster;pub use session::open;pub use sub::EventStream;pub use sub::FleetEvent;pub use sub::Monitor;pub use sub::MonitorCore;pub use sub::MonitorSpec;pub use sub::SampleView;pub use sub::StreamItem;pub use tree::KeyTreeSnapshot;
Modules§
- admin
- Zenoh admin-space access (issue #14): browse
@/**— the middleware’s own introspection — from the same un-namespaced session the convention tooling already holds (a namespaced session’s admin selector would be rewritten and match nothing, RFC 09 §5). - decode
- The schema-aware decode seam (issues #11/#15): wire key → type name → served schema → named-field JSON, with the honest fallbacks a generic tool owes its user.
- discover
- Deployment-base discovery — the sweep behind
zenctl base list. - query
- The fan-in query discipline (RFC 05 §2.1) — moved verbatim from
zenctl’s
bus.rs; this stays the single chokepoint for fleet GETs. - registry
- Registry-slice sets (RFC 08 §6): one type over both sources.
- roster
- The liveliness roster (RFC 04 §5).
- session
- Session setup for un-namespaced observers (RFC 09 §5).
- stats
- Windowed per-key statistics (issues #13/#15): message/byte counters and
an exponentially-weighted rate, keyed by wire key. Backs
zenctl topic hz/bw/echo --rateand zengui’s tree badges. - sub
- The live monitor (issue #15): subscription multiplexing + liveliness
watching, fanned into a bounded broadcast of
FleetEvents, with the key-tree snapshot published on a stats tick. - tree
- The live key tree (issue #15): an immutable snapshot of everything the monitor has seen, grouped by key chunks, with per-node statistics.