# 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"] tracing_release = ["tracing/release_max_level_info"] 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 = [] checksum = [] [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 = { workspace = true } 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"} aes = { version = "0.8.4"} turso_parser = { workspace = true } aegis = "0.9.0" twox-hash = "2.1.1" [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"] } 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