# Copyright 2023 the Limbo authors. All rights reserved. MIT license. [package] name = "limbo_core" version.workspace = true authors.workspace = true edition.workspace = true license.workspace = true repository.workspace = true description = "The Limbo database library" [lib] name = "limbo_core" path = "lib.rs" [features] default = ["fs", "uuid", "time", "json", "static"] fs = ["limbo_ext/vfs"] json = [] uuid = ["limbo_uuid/static"] io_uring = ["dep:io-uring", "rustix/io_uring", "dep:libc"] percentile = ["limbo_percentile/static"] regexp = ["limbo_regexp/static"] time = ["limbo_time/static"] crypto = ["limbo_crypto/static"] series = ["limbo_series/static"] ipaddr = ["limbo_ipaddr/static"] completion = ["limbo_completion/static"] testvfs = ["limbo_ext_tests/static"] static = ["limbo_ext/static"] fuzz = [] [target.'cfg(target_os = "linux")'.dependencies] io-uring = { version = "0.7.5", optional = true } [target.'cfg(target_family = "unix")'.dependencies] polling = "3.7.4" rustix = { version = "1.0.5", features = ["fs"]} [target.'cfg(not(target_family = "wasm"))'.dependencies] mimalloc = { version = "0.1.46", default-features = false } libloading = "0.8.6" [dependencies] limbo_ext = { workspace = true, features = ["core_only"] } cfg_block = "0.1.1" fallible-iterator = "0.3.0" hex = "0.4.3" libc = { version = "0.2.172", optional = true } limbo_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" limbo_macros = { workspace = true } limbo_uuid = { workspace = true, optional = true, features = ["static"] } limbo_regexp = { workspace = true, optional = true, features = ["static"] } limbo_percentile = { workspace = true, optional = true, features = ["static"] } limbo_time = { workspace = true, optional = true, features = ["static"] } limbo_crypto = { workspace = true, optional = true, features = ["static"] } limbo_series = { workspace = true, optional = true, features = ["static"] } limbo_ipaddr = { workspace = true, optional = true, features = ["static"] } limbo_completion = { workspace = true, optional = true, features = ["static"] } limbo_ext_tests = { workspace = true, optional = true, features = ["static"] } miette = "7.6.0" strum = "0.26" parking_lot = "0.12.3" crossbeam-skiplist = "0.1.3" tracing = "0.1.41" ryu = "1.0.19" bitflags = "2.9.0" [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] criterion = { version = "0.5", features = [ "html_reports", "async", "async_futures", ] } rstest = "0.18.2" rusqlite = "0.34.0" tempfile = "3.8.0" 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" [[bench]] name = "benchmark" harness = false [[bench]] name = "mvcc_benchmark" harness = false [[bench]] name = "json_benchmark" harness = false