[package]
description = "Golem Rust tooling library that facilitates writing Golem backends in Rust"
edition = "2021"
homepage = "https://golem.cloud"
license = "Apache-2.0"
name = "golem-rust"
repository = "https://github.com/golemcloud/golem-rust"
version = "1.10.2"

[lib]
crate-type = ["rlib"]
path = "src/lib.rs"
harness = false

[[test]]
name = "agent"
harness = false

[dependencies]
golem-rust-macro = {path = "../golem-rust-macro", version = "1.10.2", optional = true}
golem-wasm = {version = "1.3.2-dev.2", default-features = false, features = ["stub"]}

async-trait = {version = "0.1.89", optional = true}
bigdecimal = {version = "0.4.9", optional = true}
bit-vec = {version = "0.8.0", optional = true}
bytes = {version = "1.11.0", optional = true}
chrono = {version = "0.4.42", optional = true}
ctor = {version = "0.4.3", optional = true}
http = {version = "1.3.1"}
log = { version = "0.4.29", features = ["kv"] }
mac_address = {version = "1.1.8", optional = true}
nonempty-collections = {version = "1.2.1", optional = true}
num-bigint = {version = "0.4", optional = true}
rust_decimal = {version = "1.39.0", optional = true}
serde = {version = "1", optional = true}
serde_json = {version = "1.0.145", optional = true}
url = {version = "2.5.7", optional = true}
uuid = {version = "1.19.0", features = ["v4"]}
wasi = {version = "=0.14.1+wasi-0.2.3"}
wstd = {version = "=0.5.4"}
wasi-logger = { version = "0.1.2", features = ["kv"] }
wit-bindgen = {version = "=0.40.0"}

[features]
default = ["durability", "json", "macro"]
bigdecimal = ["dep:bigdecimal", "num_bigint"]
bit_vec = ["dep:bit-vec"]
bytes = ["dep:bytes"]
chrono = ["dep:chrono"]
durability = []
export_golem_agentic = ["export_load_snapshot", "export_save_snapshot", "dep:ctor", "dep:async-trait"]
export_load_snapshot = []
export_oplog_processor = []
export_save_snapshot = []
golem_ai = []
json = ["dep:serde", "dep:serde_json"]
macro = ["dep:golem-rust-macro"]
mac_address = ["dep:mac_address"]
nonempty_collections = ["dep:nonempty-collections"]
num_bigint = ["dep:num-bigint"]
rust_decimal = ["dep:rust_decimal"]
serde_json_types = ["dep:serde_json"]
url = ["dep:url"]

[dev-dependencies]
test-r = "2.3.1"
proptest = "1.4.0"
