Skip to content

Commit

Permalink
Add re_data_store. It might come in handy.
Browse files Browse the repository at this point in the history
  • Loading branch information
emilk committed Jan 4, 2024
1 parent 6d2bf81 commit 724dea6
Show file tree
Hide file tree
Showing 31 changed files with 11,619 additions and 0 deletions.
127 changes: 127 additions & 0 deletions crates/re_data_store/Cargo.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,127 @@
[package]
name = "re_data_store"
authors.workspace = true
description = "An in-memory time series database for Rerun log data, based on Apache Arrow"
edition.workspace = true
homepage.workspace = true
include.workspace = true
license.workspace = true
publish = true
readme = "README.md"
repository.workspace = true
rust-version.workspace = true
version.workspace = true

[package.metadata.docs.rs]
all-features = true


[features]
default = []

## Enables `parking_lot`'s deadlock detection background thread.
deadlock_detection = ["parking_lot/deadlock_detection"]

## Integration with `polars`, to efficiently use the datastore with dataframes.
polars = ["dep:polars-core", "dep:polars-ops"]


[dependencies]
# Rerun dependencies:
re_error.workspace = true
re_format = { workspace = true, features = ["arrow"] }
re_log_types.workspace = true
re_log.workspace = true
re_tracing.workspace = true
re_types_core.workspace = true

# External dependencies:
ahash.workspace = true
arrow2 = { workspace = true, features = ["compute_concatenate"] }
document-features.workspace = true
indent.workspace = true
itertools = { workspace = true }
nohash-hasher.workspace = true
once_cell.workspace = true
parking_lot.workspace = true
smallvec.workspace = true
thiserror.workspace = true
web-time.workspace = true

# Optional dependencies:
polars-core = { workspace = true, optional = true, features = [
"diagonal_concat",
"dtype-date",
"dtype-datetime",
"dtype-time",
"dtype-struct",
"sort_multiple",
] }
polars-ops = { workspace = true, optional = true, features = [
"dtype-date",
"dtype-datetime",
"dtype-time",
"dtype-struct",
] }


[dev-dependencies]
re_log_types = { workspace = true, features = ["testing"] }
re_types = { workspace = true, features = ["datagen", "testing"] }

anyhow.workspace = true
criterion.workspace = true
mimalloc.workspace = true
polars-core = { workspace = true, features = [
"diagonal_concat",
"dtype-date",
"dtype-datetime",
"dtype-struct",
"dtype-time",
"fmt",
"sort_multiple",
] }
rand.workspace = true
similar-asserts.workspace = true
tinyvec.workspace = true

[lib]
bench = false


[[example]]
name = "dump_dataframe"
path = "examples/dump_dataframe.rs"
required-features = ["polars"]

[[example]]
name = "latest_component"
path = "examples/latest_component.rs"
required-features = ["polars"]

[[example]]
name = "latest_components"
path = "examples/latest_components.rs"
required-features = ["polars"]

[[example]]
name = "range_components"
path = "examples/range_components.rs"
required-features = ["polars"]


[[bench]]
name = "arrow2"
harness = false

[[bench]]
name = "data_store"
harness = false

[[bench]]
name = "gc"
harness = false

[[bench]]
name = "vectors"
harness = false
12 changes: 12 additions & 0 deletions crates/re_data_store/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
# Rerun Arrow Store

Part of the [`rerun`](https://github.com/rerun-io/rerun) family of crates.

[![Latest version](https://img.shields.io/crates/v/re_entity_db.svg)](https://crates.io/crates/re_entity_db)
[![Documentation](https://docs.rs/re_entity_db/badge.svg)](https://docs.rs/re_entity_db?speculative-link)
![MIT](https://img.shields.io/badge/license-MIT-blue.svg)
![Apache](https://img.shields.io/badge/license-Apache-blue.svg)

[Apache Arrow](https://arrow.apache.org/) is a language-independent columnar memory format for arbitrary data.

The `re_data_store` crate is an in-memory time series database for Rerun log data. It is indexed by Entity path, component, timeline, and time. It supports out-of-order insertions, and fast `O(log(N))` queries.
Loading

0 comments on commit 724dea6

Please sign in to comment.