[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 }
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 }