Files
SpacetimeDB/crates/core/Cargo.toml
Kim Altintop ef61c7c123 In-memory DatabaseLogger (#3961)
This is the second step to make in-memory-only databases not touch the
disk at all.

While at it, also make it so file-backed module logs are streamed in
constant memory where possible.

Depends-on: #3912 

# Expected complexity level and risk

2

# Testing

Added some unit-level tests.

---------

Signed-off-by: Kim Altintop <kim@eagain.io>
Co-authored-by: Phoebe Goldman <phoebe@clockworklabs.io>
2026-01-16 07:10:04 +00:00

169 lines
5.2 KiB
TOML

[package]
name = "spacetimedb-core"
version.workspace = true
edition.workspace = true
license-file = "LICENSE"
description = "The core library for SpacetimeDB"
rust-version.workspace = true
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[lib]
name = "spacetimedb" # The name of the target.
path = "src/lib.rs" # The source file of the target.
# Benching off, because of https://bheisler.github.io/criterion.rs/book/faq.html#cargo-bench-gives-unrecognized-option-errors-for-valid-command-line-options
bench = false
[dependencies]
spacetimedb-auth.workspace = true
spacetimedb-data-structures.workspace = true
spacetimedb-lib = { workspace = true, features = ["serde", "metrics_impls"] }
spacetimedb-client-api-messages.workspace = true
spacetimedb-commitlog.workspace = true
spacetimedb-datastore.workspace = true
spacetimedb-durability.workspace = true
spacetimedb-memory-usage.workspace = true
spacetimedb-metrics.workspace = true
spacetimedb-primitives.workspace = true
spacetimedb-paths.workspace = true
spacetimedb-physical-plan.workspace = true
spacetimedb-query.workspace = true
spacetimedb-sats = { workspace = true, features = ["serde"] }
spacetimedb-schema.workspace = true
spacetimedb-table.workspace = true
spacetimedb-vm.workspace = true
spacetimedb-snapshot.workspace = true
spacetimedb-subscription.workspace = true
spacetimedb-expr.workspace = true
spacetimedb-execution.workspace = true
spacetimedb-fs-utils.workspace = true
anyhow = { workspace = true, features = ["backtrace"] }
arrayvec.workspace = true
async-trait.workspace = true
backtrace.workspace = true
base64.workspace = true
blake3.workspace = true
brotli.workspace = true
bytemuck.workspace = true
bytes.workspace = true
bytestring.workspace = true
chrono.workspace = true
crossbeam-channel.workspace = true
crossbeam-queue.workspace = true
derive_more.workspace = true
dirs.workspace = true
enum-as-inner.workspace = true
enum-map.workspace = true
flate2.workspace = true
flume.workspace = true
fs2.workspace = true
futures.workspace = true
futures-util.workspace = true
hex.workspace = true
hostname.workspace = true
http.workspace = true
http-body-util.workspace = true
hyper.workspace = true
imara-diff.workspace = true
indexmap.workspace = true
itertools.workspace = true
jsonwebtoken.workspace = true
lazy_static.workspace = true
log.workspace = true
memchr.workspace = true
nohash-hasher.workspace = true
once_cell.workspace = true
openssl.workspace = true
parking_lot.workspace = true
paste.workspace = true
pin-project-lite.workspace = true
prometheus.workspace = true
rayon.workspace = true
rayon-core.workspace = true
regex.workspace = true
reqwest.workspace = true
rustc-demangle.workspace = true
rustc-hash.workspace = true
scopeguard.workspace = true
semver = { workspace = true, features = ["serde"] }
serde.workspace = true
serde_json.workspace = true
serde_path_to_error.workspace = true
serde_with = { workspace = true, features = ["chrono_0_4"] }
sha1.workspace = true
similar.workspace = true
slab.workspace = true
sled.workspace = true
smallvec.workspace = true
sourcemap.workspace = true
sqlparser.workspace = true
strum.workspace = true
tabled.workspace = true
tempfile.workspace = true
thiserror.workspace = true
thin-vec.workspace = true
tokio-util.workspace = true
tokio.workspace = true
tokio-stream = { workspace = true, features = ["sync"] }
tokio-metrics = { version = "0.4.0", features = ["rt"] }
toml.workspace = true
tracing-appender.workspace = true
tracing-core.workspace = true
tracing-flame.workspace = true
tracing-log.workspace = true
tracing-subscriber.workspace = true
tracing-tracy.workspace = true
tracing.workspace = true
url.workspace = true
urlencoding.workspace = true
uuid.workspace = true
v8.workspace = true
wasmtime.workspace = true
wasmtime-internal-fiber.workspace = true
jwks.workspace = true
async_cache = "0.3.1"
faststr = "0.2.23"
core_affinity = "0.8"
[target.'cfg(not(target_env = "msvc"))'.dependencies]
tikv-jemallocator = {workspace = true}
tikv-jemalloc-ctl = {workspace = true}
[target.'cfg(target_os = "linux")'.dependencies]
nix = { workspace = true, features = ["sched"] }
[features]
# Print a warning when doing an unindexed `iter_by_col_range` on a large table.
unindexed_iter_by_col_range_warn = []
default = ["unindexed_iter_by_col_range_warn"]
# Enable timing for wasm ABI calls
spacetimedb-wasm-instance-env-times = []
# Enable test helpers and utils
test = ["spacetimedb-commitlog/test", "spacetimedb-datastore/test"]
# Perfmaps for profiling modules
perfmap = []
# Disables core pinning
no-core-pinning = []
no-job-core-pinning = []
[dev-dependencies]
spacetimedb-lib = { path = "../lib", features = ["proptest", "test"] }
spacetimedb-sats = { path = "../sats", features = ["proptest"] }
spacetimedb-commitlog = { path = "../commitlog", features = ["test"] }
spacetimedb-datastore = { path = "../datastore/", features = ["test"] }
criterion.workspace = true
# Also as dev-dependencies for use in _this_ crate's tests.
proptest.workspace = true
proptest-derive.workspace = true
rand.workspace = true
env_logger.workspace = true
pretty_assertions.workspace = true
jsonwebtoken.workspace = true
axum.workspace = true
fs_extra.workspace = true
[lints]
workspace = true