Appearance
API Reference
The full API reference is generated from rustdoc and hosted on docs.rs.
datum-core
docs.rs builds automatically from each published crate version. After the maintainer runs cargo publish, the latest version appears at the crate URL within a few minutes.
Import path
The package is published as datum-core, but the library name is datum, so all imports use:
rust
use datum::{Source, Flow, Sink, Runtime};
// or individual modules:
use datum::graph::{GraphDsl, Broadcast, Merge};
use datum::actor::ActorFlow;
use datum::concurrent::{Signal, Subscription, Topic, channel::Channel};Module overview
| Module | Contents |
|---|---|
datum::stream | Source, Flow, Sink, RunnableGraph, Materializer, Runtime, error types, supervision |
datum::graph | GraphDsl, TypedGraphBuilder, typed ports (Inlet/Outlet, OpenInlet/OpenOutlet), shapes, junctions (Broadcast, Merge, Zip, …), GraphStage |
datum::actor | ActorFlow::ask, ActorSource, ActorSink, ActorPubSub, Ractor interop |
datum::concurrent | Signal, Subscription, Topic, overflow policies, and channel::Channel |
datum::dynamic | KillSwitches, MergeHub, BroadcastHub, PartitionHub |
datum::io | File I/O, TCP, framing, compression |
datum::queue | SourceQueue, BoundedSourceQueue, SinkQueue |
datum::context | SourceWithContext, FlowWithContext |
datum::testkit | Stream testing probes |
All top-level types (Source, Flow, Sink, junctions, etc.) are also re-exported flat from the crate root — you rarely need to import from sub-modules directly.
datum-net
datum-net is the network satellite crate. The package is published separately from datum-core and imports as datum_net::…:
rust
use datum_net::{TokioTls, TokioUdp, TokioQuic, ConnectionSettings, RetryPolicy};| Module | Contents |
|---|---|
datum_net::tls | TLS-over-TCP client/server streams; key types: TokioTls, Tls |
datum_net::udp | UDP datagram sources, sinks, and flows; key types: TokioUdp, Udp, Datagram |
datum_net::quic | QUIC endpoint and bidirectional byte-stream helpers; key types: TokioQuic, Quic |
datum_net::connection | Connection lifecycle settings and results; key types: Connection, ConnectionSettings, RetryPolicy |
datum_agent | Jobs & lifecycle: Agent, JobSpec, JobRegistryHandle, JobEvent; DCP server + typed client (dcp::client) |
Satellite crates
The operational-shell, cluster, connector, and SQL crates publish separately and import as datum_agent::…, datum_cluster::…, datum_cluster_sharding::…, datum_cdc::…, datum_mq::…, and datum_sql::…. Each has a task-oriented guide alongside its rustdoc.
| Crate | Imports as | Key types | Guide |
|---|---|---|---|
datum-agent | datum_agent | Agent, JobSpec, JobRegistryHandle, JobEvent; ClusterAgent, PlacementSpec; dcp server + client | Agent |
datum-cli | datum_cli (the datum binary) | main_entry, render_table | CLI |
datum-cluster | datum_cluster | ClusterNode, ClusterConfig, ClusterState, Member, MemberState, MemberEvent, DowningProvider, TimeoutDowning | Membership |
datum-cluster-sharding | datum_cluster_sharding | Sharding, ShardingHandle, EntityRef, ShardEnvelope, ShardExtractor, ReplyPort, ShardingConfig, RememberEntitiesStore | Sharding |
datum-cdc | datum_cdc | CdcSource, PostgresCdcConfig, ChangeEvent, CdcOffset, CdcHandle, CdcCheckpointStore | CDC |
datum-mq | datum_mq | KafkaSource, KafkaSink, KafkaOffset, KafkaControl, KafkaProducerControl, Subscription | Kafka |
datum-sql | datum_sql | DatumSqlContext, ChangelogBatch, SqlEvent, EventTimeConfig, CommittableRecordBatch, StreamingJoinConfig | SQL |
See also
- Operator reference — every
Source/Flow/Sinkoperator listed by name. - Guides — task-oriented walkthroughs (error handling, substreams, actor ask, …).
- Integrations — Kafka, PostgreSQL CDC, and SQL over Datum streams.
- Concepts — the blueprint vs. materialization model and the execution architecture.