exoware-server 2026.9.0

Serve the Exoware API.
Documentation
#![allow(clippy::result_large_err, clippy::type_complexity)]
//! Store server for ingest/query/prune/retention/stream APIs.
//!
//! Use [`AppState`] with [`connect_stack`] for an all-in-one server, or the narrower
//! state and service constructors when capabilities are served separately.

mod connect;
mod engine;
mod reduce;
mod stream;
mod validate;

pub use connect::{
    connect_stack, ingest_service, prune_service, query_service, query_stack, retention_service,
    stream_service, AppState, IngestState, PruneState, QueryState, RetentionState, StreamState,
};
pub use engine::{
    FilteredBatch, Ingest, IngestError, Log, LogBatch, Prune, Query, QueryExtra, RangeScan,
    RangeScanBatch, Retention, Sequence, StoreEngine,
};
pub use reduce::RangeError;
pub use stream::{
    CompiledMatchers, CompiledSelector, InvalidFilter, StreamHub, StreamNotification,
    StreamNotifier,
};
pub use validate::{IngestLimits, DEFAULT_MAX_VALUE_LEN};

/// Types used by filtered-batch and matcher APIs, re-exported so backends can
/// use the server API without a version-matched direct SDK dependency.
pub use exoware_sdk::{
    common::kv::v1::Entry,
    kv_codec::Utf8,
    selector::Selector,
    stream_filter::{Filter, StreamFilter},
};