# 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", "json", "uuid", "vector", "io_uring"] fs = [] json = [ "dep:jsonb", "dep:pest", "dep:pest_derive", ] uuid = ["limbo_uuid/static"] vector = ["limbo_vector/static"] io_uring = ["dep:io-uring", "rustix/io_uring"] percentile = ["limbo_percentile/static"] regexp = ["limbo_regexp/static"] [target.'cfg(target_os = "linux")'.dependencies] io-uring = { version = "0.6.1", optional = true } [target.'cfg(target_family = "unix")'.dependencies] polling = "3.7.2" rustix = "0.38.34" [target.'cfg(not(target_family = "wasm"))'.dependencies] mimalloc = { version = "*", default-features = false } libloading = "0.8.6" [dependencies] limbo_ext = { path = "../extensions/core" } cfg_block = "0.1.1" fallible-iterator = "0.3.0" hex = "0.4.3" libc = "0.2.155" log = "0.4.20" sieve-cache = "0.1.4" sqlite3-parser = { path = "../vendored/sqlite3-parser" } thiserror = "1.0.61" getrandom = { version = "0.2.15", features = ["js"] } regex = "1.11.1" regex-syntax = { version = "0.8.5", default-features = false, features = ["unicode"] } chrono = "0.4.38" julian_day_converter = "0.3.2" jsonb = { version = "0.4.4", optional = true } indexmap = { version = "2.2.6", features = ["serde"] } serde = { version = "1.0", features = ["derive"] } pest = { version = "2.0", optional = true } pest_derive = { version = "2.0", optional = true } rand = "0.8.5" bumpalo = { version = "3.16.0", features = ["collections", "boxed"] } limbo_macros = { path = "../macros" } limbo_uuid = { path = "../extensions/uuid", optional = true, features = ["static"] } limbo_vector = { path = "../extensions/vector", optional = true, features = ["static"] } limbo_regexp = { path = "../extensions/regexp", optional = true, features = ["static"] } limbo_percentile = { path = "../extensions/percentile", optional = true, features = ["static"] } miette = "7.4.0" strum = "0.26" [build-dependencies] chrono = "0.4.38" 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", ] } mockall = "0.13.0" rstest = "0.18.2" rusqlite = "0.29.0" tempfile = "3.8.0" [[bench]] name = "benchmark" harness = false