re_data_store/
lib.rs

1//! The Rerun datastore, implemented on top of [Apache Arrow](https://arrow.apache.org/)
2//! using the [`arrow2`] crate.
3//!
4//! This crate is an in-memory time series database for Rerun log data.
5//! It is indexed by entity path, component, timeline, and time.
6//! It supports out-of-order insertions, and fast `O(log(N))` queries.
7//!
8//! * See [`DataStore`] for an overview of the core data structures.
9//! * See [`DataStore::latest_at`] and [`DataStore::range`] for the documentation of the public
10//!   read APIs.
11//! * See [`DataStore::insert_row`] for the documentation of the public write APIs.
12//!
13//! ## Feature flags
14#![doc = document_features::document_features!()]
15//!
16
17mod arrow_util;
18mod store;
19mod store_arrow;
20mod store_dump;
21mod store_event;
22mod store_format;
23mod store_gc;
24mod store_helpers;
25mod store_read;
26mod store_sanity;
27mod store_stats;
28mod store_subscriber;
29mod store_write;
30
31#[doc(hidden)]
32pub mod test_util;
33
34pub use self::store::{DataStore, DataStoreConfig, StoreGeneration};
35pub use self::store_event::{StoreDiff, StoreDiffKind, StoreEvent};
36pub use self::store_gc::{GarbageCollectionOptions, GarbageCollectionTarget};
37pub use self::store_read::{LatestAtQuery, RangeQuery};
38pub use self::store_stats::{DataStoreRowStats, DataStoreStats, EntityStats};
39pub use self::store_subscriber::{StoreSubscriber, StoreSubscriberHandle};
40pub use self::store_write::{WriteError, WriteResult};
41
42pub(crate) use self::store::{
43    IndexedBucket, IndexedBucketInner, IndexedTable, MetadataRegistry, StaticCell, StaticTable,
44};
45
46// Re-exports
47#[doc(no_inline)]
48pub use arrow2::io::ipc::read::{StreamReader, StreamState};
49#[doc(no_inline)]
50pub use re_log_types::{ResolvedTimeRange, TimeInt, TimeType, Timeline}; // for politeness sake
51
52pub mod external {
53    pub use arrow2;
54}