Files
turso/core/Cargo.toml
Avinash Sajjanshetty 100a0d8e97 Add encryption module
Let's add an encryption module, hard coded to use AES 256 GCM.
Other required parameters are also hard coded and will be made
configurable in the future PRs.

The module is behind a `encryption` feature flag.
2025-08-20 11:38:11 +05:30

121 lines
3.1 KiB
TOML

# Copyright 2023-2025 the Turso authors. All rights reserved. MIT license.
[package]
name = "turso_core"
version.workspace = true
authors.workspace = true
edition.workspace = true
license.workspace = true
repository.workspace = true
description = "The Turso database library"
[lib]
name = "turso_core"
path = "lib.rs"
[features]
default = ["fs", "uuid", "time", "json", "series"]
antithesis = ["dep:antithesis_sdk"]
conn_raw_api = []
fs = ["turso_ext/vfs"]
json = []
uuid = ["dep:uuid"]
io_uring = ["dep:io-uring", "rustix/io_uring"]
time = []
fuzz = []
omit_autovacuum = []
simulator = ["fuzz", "serde"]
serde = ["dep:serde"]
series = []
encryption = ["dep:aes-gcm", "dep:aes"]
[target.'cfg(target_os = "linux")'.dependencies]
io-uring = { version = "0.7.5", optional = true }
libc = { version = "0.2.172" }
[target.'cfg(target_family = "unix")'.dependencies]
polling = "3.7.4"
rustix = { version = "1.0.5", features = ["fs"] }
libc = { version = "0.2.172" }
[target.'cfg(not(target_family = "wasm"))'.dependencies]
libloading = "0.8.6"
[dependencies]
antithesis_sdk = { version = "0.2.5", optional = true }
turso_ext = { workspace = true, features = ["core_only"] }
cfg_block = "0.1.1"
fallible-iterator = "0.3.0"
hex = "0.4.3"
turso_sqlite3_parser = { workspace = true }
thiserror = "1.0.61"
getrandom = { version = "0.2.15" }
regex = "1.11.1"
regex-syntax = { version = "0.8.5", default-features = false, features = [
"unicode",
] }
chrono = { version = "0.4.38", default-features = false, features = ["clock"] }
julian_day_converter = "0.4.5"
rand = "0.8.5"
libm = "0.2"
turso_macros = { workspace = true }
miette = "7.6.0"
strum = { workspace = true }
parking_lot = "0.12.3"
crossbeam-skiplist = "0.1.3"
tracing = "0.1.41"
ryu = "1.0.19"
uncased = "0.9.10"
strum_macros = { workspace = true }
bitflags = "2.9.0"
serde = { workspace = true, optional = true, features = ["derive"] }
paste = "1.0.15"
uuid = { version = "1.11.0", features = ["v4", "v7"], optional = true }
tempfile = "3.8.0"
pack1 = { version = "1.0.0", features = ["bytemuck"] }
bytemuck = "1.23.1"
aes-gcm = { version = "0.10.3", optional = true }
aes = { version = "0.8.4", optional = true }
[build-dependencies]
chrono = { version = "0.4.38", default-features = false }
built = { version = "0.7.5", features = ["git2", "chrono"] }
[target.'cfg(not(target_family = "windows"))'.dev-dependencies]
pprof = { version = "0.14.0", features = ["criterion", "flamegraph"] }
[dev-dependencies]
memory-stats = "1.2.0"
criterion = { version = "0.5", features = [
"html_reports",
"async",
"async_futures",
] }
rstest = "0.18.2"
rusqlite.workspace = true
quickcheck = { version = "1.0", default-features = false }
quickcheck_macros = { version = "1.0", default-features = false }
rand = "0.8.5" # Required for quickcheck
rand_chacha = "0.9.0"
env_logger = "0.11.6"
test-log = { version = "0.2.17", features = ["trace"] }
lru = "0.14.0"
sorted-vec = "0.8.6"
mimalloc = { version = "0.1.46", default-features = false }
[[bench]]
name = "benchmark"
harness = false
[[bench]]
name = "mvcc_benchmark"
harness = false
[[bench]]
name = "json_benchmark"
harness = false
[[bench]]
name = "tpc_h_benchmark"
harness = false