mirror of
https://github.com/hinto-janai/cuprate.git
synced 2024-11-17 00:07:53 +00:00
9c27ba5791
* write: impl write_block() * ops: add `get_block_info()` * read: impl block fn's * read: fix signatures * service: wrap `ConcreteEnv` in `RwLock` and doc why * heed: use `read-txn-no-tls` for `Send` read transactions * service: remove RwLock, impl some read functions * read: impl `outputs()` * read: flatten indentation, add `thread_local()` * read: impl `number_outputs_with_amount()` * tests: add `AssertTableLen` * ops: replace all table len asserts with `AssertTableLen` * service: initial tests * service: finish most tests * service: fix bad block data in test * tables: fix incorrect doc * service: add `ReadRequest::Outputs` test * read: use macros for set/getting `ThreadLocal`'s based on backend * small fixes * fix review * small fixes * read: fix ThreadLocal macros for `redb` * read: move `Output` mapping to `crate::free` it's needed in tests too * service: check output value correctness in tests * helper: add timelock <-> u64 mapping functions * free: use `u64_to_timelock()` * read: rct outputs * read: fix variable name * read: use ThreadLocal for both backends * heed: use Mutex for `HeedTableRo`'s read tx * block: add miner_tx * heed: remove Table bound oops * Revert "heed: use Mutex for `HeedTableRo`'s read tx" This reverts commit 7e8aae016c55802070ccf7d152aa8966984d7186. * add `UnsafeSendable` * read: use `UnsafeSendable` for `heed`, branch on backend * read: safety docs * cargo.toml: re-add `read-txn-no-tls` for heed * ops: fix tests, remove miner_tx * fix tx_idx calculation, account for RCT outputs in tests * read: docs, fix `get_tables!()` for both backends * fix clippy * database: `unsafe trait DatabaseRo` * tx: use correct tx_id * free: remove miner_tx comment * free: remove `amount` input for rct outputs * ops: split `add_tx` inputs * read: use `UnsafeSendable` for all backends * heed: update safety comment * move output functions `free` -> `ops` * read: fix `chain_height()` handling * remove serde on `UnsafeSendable` * de-dup docs on `trait DatabaseRo`, `get_tables!()` * Update database/src/unsafe_sendable.rs Co-authored-by: Boog900 <boog900@tutanota.com> --------- Co-authored-by: Boog900 <boog900@tutanota.com>
59 lines
No EOL
2.5 KiB
TOML
59 lines
No EOL
2.5 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", "redb", "service"]
|
|
# default = ["redb", "service"]
|
|
# default = ["redb-memory", "service"]
|
|
heed = ["dep:heed"]
|
|
redb = ["dep:redb"]
|
|
redb-memory = ["redb"]
|
|
service = ["dep:crossbeam", "dep:futures", "dep:tokio", "dep:tokio-util", "dep:tower", "dep:rayon"]
|
|
|
|
[dependencies]
|
|
bitflags = { workspace = true, features = ["serde", "bytemuck"] }
|
|
bytemuck = { version = "1.14.3", features = ["must_cast", "derive", "min_const_generics", "extern_crate_alloc"] }
|
|
bytes = { workspace = true }
|
|
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", "map"] }
|
|
cuprate-types = { path = "../types", features = ["service"] }
|
|
curve25519-dalek = { workspace = true }
|
|
monero-pruning = { path = "../pruning" }
|
|
monero-serai = { workspace = true, features = ["std"] }
|
|
paste = { workspace = true }
|
|
page_size = { version = "0.6.0" } # Needed for database resizes, they must be a multiple of the OS page size.
|
|
thiserror = { workspace = true }
|
|
|
|
# `service` feature.
|
|
crossbeam = { workspace = true, features = ["std"], optional = true }
|
|
futures = { workspace = true, optional = true }
|
|
tokio = { workspace = true, features = ["full"], optional = true }
|
|
tokio-util = { workspace = true, features = ["full"], optional = true }
|
|
tower = { workspace = true, features = ["full"], optional = true }
|
|
thread_local = { workspace = true }
|
|
rayon = { workspace = true, optional = true }
|
|
|
|
# Optional features.
|
|
heed = { version = "0.20.0", features = ["read-txn-no-tls"], optional = true }
|
|
redb = { version = "2.1.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"] }
|
|
cuprate-test-utils = { path = "../test-utils" }
|
|
page_size = { version = "0.6.0" }
|
|
tempfile = { version = "3.10.0" }
|
|
pretty_assertions = { workspace = true }
|
|
hex = { workspace = true }
|
|
hex-literal = { workspace = true } |