[package] name = "garage" version = "0.8.0" authors = ["Alex Auvolat "] edition = "2018" license = "AGPL-3.0" description = "Garage, an S3-compatible distributed object store for self-hosted deployments" repository = "https://git.deuxfleurs.fr/Deuxfleurs/garage" readme = "../../README.md" autotests = false [[bin]] name = "garage" path = "main.rs" [[test]] name = "integration" path = "tests/lib.rs" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html [dependencies] garage_db = { version = "0.8.0", path = "../db" } garage_api = { version = "0.8.0", path = "../api" } garage_block = { version = "0.8.0", path = "../block" } garage_model = { version = "0.8.0", path = "../model" } garage_rpc = { version = "0.8.0", path = "../rpc" } garage_table = { version = "0.8.0", path = "../table" } garage_util = { version = "0.8.0", path = "../util" } garage_web = { version = "0.8.0", path = "../web" } bytes = "1.0" bytesize = "1.1" timeago = "0.3" hex = "0.4" tracing = { version = "0.1.30", features = ["log-always"] } tracing-subscriber = { version = "0.3", features = ["env-filter"] } rand = "0.8" async-trait = "0.1.7" sodiumoxide = { version = "0.2.5-0", package = "kuska-sodiumoxide" } rmp-serde = "0.15" serde = { version = "1.0", default-features = false, features = ["derive", "rc"] } serde_bytes = "0.11" structopt = { version = "0.3", default-features = false } toml = "0.5" futures = "0.3" futures-util = "0.3" tokio = { version = "1.0", default-features = false, features = ["rt", "rt-multi-thread", "io-util", "net", "time", "macros", "sync", "signal", "fs"] } netapp = "0.5" opentelemetry = { version = "0.17", features = [ "rt-tokio" ] } opentelemetry-prometheus = { version = "0.10", optional = true } opentelemetry-otlp = { version = "0.10", optional = true } prometheus = { version = "0.13", optional = true } [dev-dependencies] aws-sdk-s3 = "0.19" chrono = "0.4" http = "0.2" hmac = "0.12" hyper = { version = "0.14", features = ["client", "http1", "runtime"] } sha2 = "0.10" static_init = "1.0" assert-json-diff = "2.0" serde_json = "1.0" base64 = "0.13" [features] default = [ "bundled-libs", "metrics", "sled" ] k2v = [ "garage_util/k2v", "garage_api/k2v" ] # Database engines, Sled is still our default even though we don't like it sled = [ "garage_model/sled" ] lmdb = [ "garage_model/lmdb" ] sqlite = [ "garage_model/sqlite" ] # Automatic registration and discovery via Consul API consul-discovery = [ "garage_rpc/consul-discovery" ] # Automatic registration and discovery via Kubernetes API kubernetes-discovery = [ "garage_rpc/kubernetes-discovery" ] # Prometheus exporter (/metrics endpoint). metrics = [ "garage_api/metrics", "opentelemetry-prometheus", "prometheus" ] # Exporter for the OpenTelemetry Collector. telemetry-otlp = [ "opentelemetry-otlp" ] # NOTE: bundled-libs and system-libs should be treat as mutually exclusive; # exactly one of them should be enabled. # Use bundled libsqlite instead of linking against system-provided. bundled-libs = [ "garage_db/bundled-libs" ] # Link against system-provided libsodium and libzstd. system-libs = [ "garage_block/system-libs", "garage_rpc/system-libs", "sodiumoxide/use-pkg-config" ]