Primitives

Scepter is organized by concern.

ModulePurpose
keyOrdered key encoding with LexicographicKey and KeyEncoder.
modelSchema-rich time-series types and location resolution.
shardRange assignment, load scoring, lookup, and splitting.
hintCompact field-hint indexes for query fanout pruning.
distributionBucket layouts, distributions, exemplars, percentiles, and deltas.
aggregateDistributed aggregation traits and basic reducers.
collectBucketed delta aggregation with admission windows.
ingestWrite envelopes, stale-write policy, and range routing.
queryLogical plans, fanout plans, and pushdown fragments.
reliabilityReplica selection and partial-result health metadata.
standingPeriodic standing queries and stable evaluator sharding.
arrowOptional Apache Arrow batch exporters.
compressedOptional Roaring-backed numeric field-hint index for dense set operations.
wireOptional CBOR and Zstd helpers.

Use the crate root re-exports for common workflows:

use scepter::{FieldHintIndex, FieldPredicate, RangeAssigner};

let mut ranges = RangeAssigner::new();
ranges.assign(b"a".to_vec()..b"m".to_vec(), "leaf-1")?;

let mut index = FieldHintIndex::new();
index.insert_value("ComputeTask", "job", "monarch", "leaf-1");

let candidates = index.candidates(
    "ComputeTask",
    "job",
    &FieldPredicate::Equals("monarch".to_owned()),
);

assert!(candidates.contains("leaf-1"));

Ok::<(), scepter::ShardError>(())