Skip to content
Snippets Groups Projects
Cargo.toml 3.62 KiB
Newer Older
Yaroslav Dynnikov's avatar
Yaroslav Dynnikov committed
[package]
name = "picodata"
version = "24.7.0"
edition = "2021"
Yaroslav Dynnikov's avatar
Yaroslav Dynnikov committed
autotests = false
rust-version = "1.76.0"
Yaroslav Dynnikov's avatar
Yaroslav Dynnikov committed

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

[dependencies]
abi_stable = "0.11"
ahash = "0.8"
bytes = "1.8"
chrono = "0.4"
clap = { version = "3.0", features = ["derive", "env"] }
comfy-table = "7.1"
nix = { version = "0.29", features = ["fs", "term", "process", "signal"] }
once_cell = "1.20"
openssl = "0.10"
pgwire = { version = "0.24", default-features = false, features = ["server-api"] }
postgres-types = { version = "0.2", features = ["array-impls", "with-serde_json-1", "with-time-0_3", "with-uuid-0_8"] }
protobuf = { version = "2.27", features = ["bytes", "with-bytes"] }
raft = "0.7"
rand = "0.8"
rmp-serde = "1.1"
rmpv = { version = "1.0", features = ["with-serde"] }
rust_decimal = { version = "1.36", features = ["db-postgres"] }
rustyline = "14.0"
rustyline-derive = "0.10"
Yaroslav Dynnikov's avatar
Yaroslav Dynnikov committed
serde = "1.0"
serde_yaml = "0.9"
slog = { version = "2.7", features = ["max_level_trace", "release_max_level_trace"] }
smallvec = "1.13"
smol_str = "0.2"
socket2 = "0.5"
sqlparser = { version = "0.40", features = ["visitor"] }
time = { version = "0.3", features = ["parsing", "formatting", "macros"] }
uuid = { version = "0.8", features = ["v4"] } # TODO: update to 1.0
# Bundled modules
pico_proc_macro = { path = "pico_proc_macro" }
picodata-plugin = { path = "picodata-plugin", features = ["internal_test"] }
sbroad-core = { path = "sbroad/sbroad-core" }
tarantool = { path = "tarantool/tarantool", features = ["picodata", "test", "stored_procs_slice"] }
[dev-dependencies]
git-version = "0.3"
quote = "1.0"
syn = { version = "1.0", features = ["full", "extra-traits", "printing"] }
build-rs-helpers = { path = "build-rs-helpers" }
tarantool-build = { path = "tarantool-build" }

# an attempt to minimize the number of lines in Cargo.lock
[patch.crates-io]
tarantool = { path = "tarantool/tarantool" }
tarantool-proc = { path = "tarantool/tarantool-proc" }
tlua = { path = "tarantool/tlua" }
tlua-derive = { path = "tarantool/tlua-derive" }
# tlua, sbroad-core etc depend on tarantool-module's git repo
[patch."https://git.picodata.io/picodata/picodata/tarantool-module.git"]
tarantool = { path = "tarantool/tarantool" }
tarantool-proc = { path = "tarantool/tarantool-proc" }
tlua = { path = "tarantool/tlua" }
tlua-derive = { path = "tarantool/tlua-derive" }
dynamic_build = []
error_injection = []
webui = []
Georgy Moshkin's avatar
Georgy Moshkin committed
doctest = true
[[test]]
name = "inner"
path = "test/inner.rs"
harness = false
members = [
    "gostech/gostech-audit-log",
    "pico_proc_macro",
    "tarantool-build",
    "test/plug_wrong_version",

# For releases, we prioritize performance over compilation time.
# As demonstrated in https://git.picodata.io/picodata/picodata/picodata/-/issues/1026#note_107222,
# these options can result in a performance improvement of 16.89%.
# However, it dramatically increases compilation time, so in CI on non-master
# branches a faster profile is used - fast-release.
[profile.release]
debug = 1
lto = "fat"
codegen-units = 1

# A faster release build that is used in CI on non-master branches.
[profile.fast-release]
inherits = "release"
debug = "line-tables-only"
lto = "off"
codegen-units = 64

[profile.asan-dev]
inherits = "dev"