mirror of
https://github.com/Cuprate/cuprate.git
synced 2025-01-09 04:20:01 +00:00
272ef18eb6
* database: add `bytemuck` * database: add `types` module, replace `Pod` with `bytemuck` traits * types: docs * types: more docs * types: align safety msg * types: docs * misc docs * add `storable.rs` * add `slice.rs` * storable: impl `impl_storable_checked_bit_pattern!()` * database: TODO: fix `DatabaseRo::get_range` lifetimes * key/table: trait bound fixes * misc fixes * remove `borsh` - Doesn't work on must types - Probably won't use it anyway - Most things impl `serde` * key: add `new_with_max_secondary()` * key: add `new_with_max_secondary()` * heed: add `StorableHeed` for `Storable` compat * redb: add `StorableRedb{Key,Value}` for `Storable` compat * storable: add `Debug` bound and `fixed_width()` * redb: fix `'static` bound * storable: docs * `pod.rs` tests -> `storable.rs` * redb: add `Storable` tests * storable: add doc tests * redb: simplify `Storable` tests * heed: add `Storable` tests * misc docs/fixes * cargo: switch from forked `heed` -> `heed 0.20.0-alpha.9` * update readme * docs * fix README * table: remove `CONSTANT_SIZE` * database: `get()/delete() -> Err(KeyNotFound)` instead of `Option`
52 lines
1.9 KiB
TOML
52 lines
1.9 KiB
TOML
[package]
|
|
name = "cuprate-database"
|
|
version = "0.0.0"
|
|
edition = "2021"
|
|
description = "Cuprate's database abstraction"
|
|
license = "MIT"
|
|
authors = ["hinto-janai"]
|
|
repository = "https://github.com/Cuprate/cuprate/tree/main/database"
|
|
keywords = ["cuprate", "database"]
|
|
|
|
[features]
|
|
default = ["heed", "service"]
|
|
# default = ["redb", "service"] # For testing `redb`.
|
|
heed = ["dep:heed"]
|
|
redb = ["dep:redb"]
|
|
service = ["dep:crossbeam", "dep:tokio", "dep:tower"]
|
|
|
|
[dependencies]
|
|
bytemuck = { version = "1.14.3", features = ["must_cast", "derive", "min_const_generics", "extern_crate_alloc"] }
|
|
cfg-if = { workspace = true }
|
|
# FIXME:
|
|
# We only need the `thread` feature if `service` is enabled.
|
|
# Figure out how to enable features of an already pulled in dependency conditionally.
|
|
cuprate-helper = { path = "../helper", features = ["fs", "thread"] }
|
|
paste = { workspace = true }
|
|
# Needed for database resizes.
|
|
# They must be a multiple of the OS page size.
|
|
page_size = { version = "0.6.0" }
|
|
thiserror = { workspace = true }
|
|
|
|
# `service` feature.
|
|
crossbeam = { workspace = true, features = ["std"], optional = true }
|
|
tokio = { workspace = true, features = ["full"], optional = true }
|
|
tower = { workspace = true, features = ["full"], optional = true }
|
|
# SOMEDAY: could be used in `service` as
|
|
# the database mutual exclusive `RwLock`.
|
|
#
|
|
# `parking_lot` has a fairness policy unlike `std`,
|
|
# although for now (and until testing is done),
|
|
# `std` is fine.
|
|
# parking_lot = { workspace = true, optional = true }
|
|
|
|
# Optional features.
|
|
heed = { version = "0.20.0-alpha.9", optional = true }
|
|
redb = { version = "1.5.0", optional = true }
|
|
serde = { workspace = true, optional = true }
|
|
|
|
[dev-dependencies]
|
|
bytemuck = { version = "1.14.3", features = ["must_cast", "derive", "min_const_generics", "extern_crate_alloc"] }
|
|
cuprate-helper = { path = "../helper", features = ["thread"] }
|
|
page_size = { version = "0.6.0" }
|
|
tempfile = { version = "3.10.0" }
|