scepter 0.1.2

Composable primitives for planet-scale time-series routing, indexing, and aggregation.
Documentation
//! Scepter provides composable primitives for large-scale time-series systems:
//! schema-rich keys, lexicographic routing, approximate field-hint indexing,
//! mergeable distributions, ingestion aggregation, and distributed query
//! planning.
//!
//! The crate is inspired by the public Monarch paper, but it is an independent
//! Rust library design intended for observability systems, log search, stream
//! processing, and distributed query engines.

#![forbid(unsafe_code)]
#![deny(missing_debug_implementations)]
#![deny(missing_docs)]

/// Distributed aggregation traits and collection aggregation helpers.
pub mod aggregate;
/// Distribution-valued metric primitives.
pub mod distribution;
/// Field-hint indexing and excerpt generation.
pub mod hint;
/// Ingest routing primitives.
pub mod ingest;
/// Lexicographic key encoding.
pub mod key;
/// Schema and logical time-series model types.
pub mod model;
/// Logical query planning and pushdown primitives.
pub mod query;
/// Lexicographic range sharding.
pub mod shard;
/// Standing-query scheduling and evaluator sharding.
pub mod standing;

pub use aggregate::{CollectionAggregator, Mergeable, PartialAggregate, Sum};
pub use distribution::{
    Bucket, BucketLayout, CumulativePoint, DeltaWindow, Distribution, DistributionError, Exemplar,
};
pub use hint::{
    ngrams, trigrams, try_ngrams, ExcerptStrategy, FieldHint, FieldHintIndex, FieldPredicate,
    HintError,
};
pub use ingest::{DropPolicy, IngestDecision, IngestRouter, WriteEnvelope};
pub use key::{KeyEncoder, LexicographicKey};
pub use model::{
    Field, FieldValue, LocationResolver, MetricKind, MetricSchema, TargetSchema, TimeSeriesKey,
    ValueKind,
};
pub use query::{
    ExecutionLevel, FanoutPlan, LogicalPlan, PlanNode, PushdownPlanner, QueryFragment,
};
pub use shard::{LoadSample, RangeAssigner, RangeAssignment, RangeLoad, ShardError};
pub use standing::{EvaluatorShard, Schedule, StandingError, StandingQuery};