[package]
name = "picodata"
version = "23.6.0"
edition = "2021"
autotests = false
rust-version = "1.71.0"

# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html

[dependencies]
bytes = "1.1"
clap = {version = "3", features = ["derive", "env"]}
indoc = "2"
libc = "0.2.108"
raft = "0.6.0"
serde = "1.0"
serde_yaml = "0.9.25"
serde_json = "1.0"
serde_bytes = "0.11"
serde_repr = "0.1"
rmp-serde = "1.0"
rmp = "*"
tempfile = "3"
thiserror = "1.0"
nix = { version = "0.26.4", features = ["fs", "term", "process", "signal"] }
uuid = {version = "1.0", features = ["v3"]}
futures = "0.3.25"
once_cell = "1.17.1"
blake3 = "=1.3.3"
rustyline = "12.0.0"
rmpv = "1.0.0"
comfy-table = "7.0.1"

linkme = "0.3.14"
libloading = "0.8"
abi_stable = "0.11.2"

picodata-sdk = {path = "./sdk/picodata-sdk"}

[dependencies.protobuf]
version = "2.27"
features = ["bytes", "with-bytes"]

[dependencies.sbroad-core]
version = "0.1"
path = "sbroad/sbroad-core"

[dependencies.slog]
version = "2.7.0"
features = ["max_level_trace", "release_max_level_trace"]

[dependencies.tarantool]
path = "./tarantool/tarantool"
version = "4.0"
features = ["picodata", "test"]

[dev-dependencies]
rand = "0.8.5"
pretty_assertions = "0.6.1"

[build-dependencies]
nix = { version = "0.26.4", features = ["fs"] }
jobserver = "0.1.26"

[patch."https://git.picodata.io/picodata/picodata/tarantool-module.git"]
tarantool = { path = "./tarantool/tarantool" }

[patch.crates-io]
nix = { git = "https://git.picodata.io/picodata/picodata/nix.git", branch = "fix-memfd-create-for-older-libc-backport-26-4" }

[features]
load_test = []
webui = []

[lib]
doctest = true

[[test]]
name = "inner"
path = "test/inner.rs"
harness = false

[workspace]
members = [
        ".",
        "sdk/picodata-sdk", # picodata / plugins etc. it is temporary naming
        "sdk/plugin-example",
        "sdk/plugin-example2",
]