[package] name = "surrealdb" publish = true edition = "2021" version = "1.1.1" rust-version = "1.70.0" readme = "CARGO.md" authors = ["Tobie Morgan Hitchcock "] description = "A scalable, distributed, collaborative, document-graph database, for the realtime web" repository = "https://github.com/surrealdb/surrealdb" homepage = "https://github.com/surrealdb/surrealdb" documentation = "https://docs.rs/surrealdb/" keywords = ["database", "embedded-database", "key-value", "key-value-store", "kv-store"] categories = ["database-implementations", "data-structures", "embedded"] license-file = "../LICENSE" resolver = "2" [features] # Public features default = ["protocol-ws", "rustls"] protocol-http = ["dep:reqwest", "dep:tokio-util"] protocol-ws = ["dep:tokio-tungstenite", "tokio/time"] kv-mem = ["dep:echodb", "tokio/time"] kv-indxdb = ["dep:indxdb"] kv-speedb = ["dep:speedb", "tokio/time"] kv-rocksdb = ["dep:rocksdb", "tokio/time"] kv-tikv = ["dep:tikv"] kv-fdb-5_1 = ["foundationdb/fdb-5_1", "kv-fdb"] kv-fdb-5_2 = ["foundationdb/fdb-5_2", "kv-fdb"] kv-fdb-6_0 = ["foundationdb/fdb-6_0", "kv-fdb"] kv-fdb-6_1 = ["foundationdb/fdb-6_1", "kv-fdb"] kv-fdb-6_2 = ["foundationdb/fdb-6_2", "kv-fdb"] kv-fdb-6_3 = ["foundationdb/fdb-6_3", "kv-fdb"] kv-fdb-7_0 = ["foundationdb/fdb-7_0", "kv-fdb"] kv-fdb-7_1 = ["foundationdb/fdb-7_1", "kv-fdb"] scripting = ["dep:js"] http = ["dep:reqwest"] native-tls = ["dep:native-tls", "reqwest?/native-tls", "tokio-tungstenite?/native-tls"] rustls = ["dep:rustls", "reqwest?/rustls-tls", "tokio-tungstenite?/rustls-tls-webpki-roots"] ml = ["surrealml-core", "ndarray"] jwks = ["dep:reqwest"] arbitrary = ["dep:arbitrary", "dep:regex-syntax", "rust_decimal/rust-fuzz", "geo-types/arbitrary", "uuid/arbitrary"] experimental-parser = ["dep:phf", "dep:unicase"] # Private features kv-fdb = ["foundationdb", "tokio/time"] [package.metadata.docs.rs] rustdoc-args = ["--cfg", "docsrs"] features = [ "protocol-ws", "protocol-http", "kv-mem", "kv-indxdb", "kv-rocksdb", "rustls", "native-tls", "http", "scripting", "jwks" ] targets = [] [dependencies] addr = { version = "0.15.6", default-features = false, features = ["std"] } argon2 = "0.5.2" ascii = { version = "0.3.2", package = "any_ascii" } async-recursion = "1.0.5" base64_lib = { version = "0.21.5", package = "base64" } bcrypt = "0.15.0" bincode = "1.3.3" bytes = "1.5.0" cedar-policy = "2.4.2" channel = { version = "1.9.0", package = "async-channel" } chrono = { version = "0.4.31", features = ["serde"] } derive = { version = "0.12.0", package = "surrealdb-derive" } deunicode = "1.4.1" dmp = "0.2.0" echodb = { version = "0.4.0", optional = true } executor = { version = "1.8.0", package = "async-executor" } flume = "0.11.0" foundationdb = { version = "0.8.0", default-features = false, features = ["embedded-fdb-include"], optional = true } fst = "0.4.7" futures = "0.3.29" futures-concurrency = "7.4.3" fuzzy-matcher = "0.3.7" geo = { version = "0.27.0", features = ["use-serde"] } hex = { version = "0.4.3", optional = false } indexmap = { version = "2.1.0", features = ["serde"] } indxdb = { version = "0.4.0", optional = true } ipnet = "2.9.0" js = { version = "0.4.2", package = "rquickjs", features = ["array-buffer", "bindgen", "classes", "futures", "loader", "macro", "parallel", "properties","rust-alloc"], optional = true } jsonwebtoken = { version = "8.3.0-surreal.1", package = "surrealdb-jsonwebtoken" } lexicmp = "0.1.0" md-5 = "0.10.6" nanoid = "0.4.0" native-tls = { version = "0.2.11", optional = true } ndarray = { version = "0.15.6", optional = true } nom = { version = "7.1.3", features = ["alloc"] } num_cpus = "1.16.0" object_store = { version = "0.8.0", optional = false } once_cell = "1.18.0" path-clean = "1.0.1" pbkdf2 = { version = "0.12.2", features = ["simple"] } pin-project-lite = "0.2.13" quick_cache = "0.4.0" radix_trie = { version = "0.2.1", features = ["serde"] } rand = "0.8.5" regex = "1.10.2" reqwest = { version = "0.11.22", default-features = false, features = ["json", "stream", "multipart"], optional = true } revision = "0.5.0" roaring = { version = "0.10.2", features = ["serde"] } rocksdb = { version = "0.21.0", features = ["lz4", "snappy"], optional = true } rust_decimal = { version = "1.33.1", features = ["maths", "serde-str"] } rust-stemmers = "1.2.0" rustls = { version = "=0.21.7", optional = true } scrypt = "0.11.0" semver = { version = "1.0.20", features = ["serde"] } serde = { version = "1.0.193", features = ["derive"] } serde_json = "1.0.108" sha1 = "0.10.6" sha2 = "0.10.8" snap = "1.1.0" speedb = { version = "0.0.4", features = ["lz4", "snappy"], optional = true } storekey = "0.5.0" surrealml-core = { version = "0.0.3", optional = true } thiserror = "1.0.50" tikv = { version = "0.2.0-surreal.2", default-features = false, package = "surrealdb-tikv-client", optional = true } tokio-util = { version = "0.7.10", optional = true, features = ["compat"] } tracing = "0.1.40" trice = "0.4.0" ulid = { version = "1.1.0", features = ["serde"] } url = "2.5.0" phf = { version = "0.11.2", features = ["macros", "unicase"], optional=true } unicase = { version = "2.7.0", optional = true } arbitrary = { version = "1.3.2", features = ["derive"], optional = true } regex-syntax = { version = "0.8.2", optional = true, features = ["arbitrary"] } geo-types = { version = "0.7.12", features = ["arbitrary"] } [dev-dependencies] criterion = { version="0.5.1", features= ["async_tokio"] } env_logger = "0.10.1" pprof = { version = "0.13.0", features = ["flamegraph", "criterion"] } serial_test = "2.0.0" temp-dir = "0.1.11" test-log = { version="0.2.13", features = ["trace"] } time = { version = "0.3.30", features = ["serde"] } tokio = { version = "1.34.0", features = ["macros", "sync", "rt-multi-thread"] } tracing-subscriber = { version = "0.3.18", features = ["env-filter"] } wiremock = "0.5.22" [target.'cfg(target_arch = "wasm32")'.dependencies] pharos = "0.5.3" tokio = { version = "1.34.0", default-features = false, features = ["rt", "sync"] } uuid = { version = "1.6.1", features = ["serde", "js", "v4", "v7"] } wasm-bindgen-futures = "0.4.39" wasmtimer = { version = "0.2.0", default-features = false, features = ["tokio"] } ws_stream_wasm = "0.7.4" [target.'cfg(not(target_arch = "wasm32"))'.dependencies] tokio = { version = "1.34.0", default-features = false, features = ["macros", "io-util", "io-std", "fs", "rt-multi-thread", "time", "sync"] } tokio-tungstenite = { version = "0.20.1", optional = true } uuid = { version = "1.6.1", features = ["serde", "v4", "v7"] } [lib] name = "surrealdb" # Needed for the nightly crate as we will be renaming it bench = false [[bench]] name = "executor" harness = false [[bench]] name = "parser" harness = false [[bench]] name = "processor" harness = false [[bench]] name = "index_btree" harness = false [[bench]] name = "index_mtree" harness = false [[bench]] name = "move_vs_clone" harness = false [[bench]] name = "sdb" harness = false