golem-common 1.1.25

Shared code between Golem services
[package]
name = "golem-common"
version = "1.1.25"
edition = "2021"
license = "Apache-2.0"
homepage = "https://golem.cloud"
repository = "https://github.com/golemcloud/golem"
description = "Shared code between Golem services"

[features]
default = [
    "base-model",
    "config",
    "model",
    "observability",
    "poem",
    "protobuf",
    "redis",
    "serialization",
    "sql",
    "tokio",
]

base-model = []
config = ["dep:figment"]
model = [
    "base-model",
    "dep:golem-wasm-rpc",
    "dep:golem-wasm-ast",
    "dep:golem-rib",
]
observability = [
    "dep:console-subscriber",
    "dep:prometheus",
    "dep:tracing",
    "dep:tracing-subscriber",
    "dep:tracing-serde",
]
poem = [
    "dep:poem",
    "dep:poem-openapi",
    "dep:poem-openapi-derive",
    "golem-wasm-ast/poem_openapi",
    "golem-wasm-ast/poem_openapi",
    "golem-rib/poem",
]
protobuf = [
    "dep:prost",
    "dep:prost-types",
    "dep:tonic",
    "dep:golem-api-grpc",
    "golem-rib/protobuf",
    "golem-wasm-ast/protobuf",
    "golem-wasm-rpc/protobuf",
]
redis = ["dep:fred"]
serialization = []
sql = ["dep:sqlx"]
tokio = ["dep:tokio"]

[lib]
harness = false

[dependencies]
golem-api-grpc = { path = "../golem-api-grpc", version = "=1.1.25", optional = true }
golem-rib = { path = "../golem-rib", version = "=1.1.25", default-features = false, features = [
    "protobuf",
    "poem",
    "json_in_errors",
], optional = true } # TODO: make these optionals
golem-wasm-ast = { path = "../wasm-ast", version = "=1.1.25", default-features = false, features = [
    "metadata",
], optional = true }
golem-wasm-rpc = { path = "../wasm-rpc", version = "=1.1.25", default-features = false, features = [
    "host",
], optional = true }

anyhow = { workspace = true }
async-trait = { workspace = true }
bincode = { workspace = true }
bytes = { workspace = true }
chrono = { workspace = true }
combine = { workspace = true }
console-subscriber = { workspace = true, optional = true }
dashmap = { workspace = true }
derive_more = { workspace = true }
figment = { workspace = true, optional = true }
fred = { workspace = true, optional = true }
git-version = { workspace = true }
http = { workspace = true }
humantime-serde = { workspace = true }
iso8601-timestamp = { workspace = true }
itertools = { workspace = true }
lazy_static = { workspace = true }
nonempty-collections = { workspace = true }
poem = { workspace = true, optional = true }
poem-openapi = { workspace = true, optional = true }
poem-openapi-derive = { workspace = true, optional = true }
prometheus = { workspace = true, optional = true }
prost = { workspace = true, optional = true }
prost-types = { workspace = true, optional = true }
rand = { workspace = true }
range-set-blaze = "0.1.16"
regex = { workspace = true }
serde = { workspace = true }
serde_json = { workspace = true }
serde_yaml = { workspace = true }
sqlx = { workspace = true, optional = true }
thiserror = { workspace = true }
toml = { workspace = true }
tokio = { workspace = true, optional = true }
tonic = { workspace = true, optional = true }
tracing = { workspace = true, optional = true }
tracing-subscriber = { workspace = true, optional = true }
tracing-serde = { workspace = true, optional = true }
typed-path = { workspace = true }
url = { workspace = true }
uuid = { workspace = true }

[dev-dependencies]
anyhow = { workspace = true }
test-r = { workspace = true }
tracing-test = { workspace = true }