[package]
edition = "2024"
name = "golem-rust"
version = "3.0.2"
build = false
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "Golem Rust tooling library that facilitates writing Golem backends in Rust"
homepage = "https://golem.cloud"
readme = "README.md"
license = "Apache-2.0"
repository = "https://github.com/golemcloud/golem-rust"
resolver = "2"
[features]
bigdecimal = [
"dep:bigdecimal",
"num_bigint",
"golem-schema/bigdecimal",
]
bit_vec = [
"dep:bit-vec",
"golem-schema/bit_vec",
]
bytes = ["golem-schema/bytes"]
chrono = [
"dep:chrono",
"golem-schema/chrono",
]
default = [
"durability",
"json",
"macro",
]
durability = []
export_golem_agentic = [
"export_load_snapshot",
"export_save_snapshot",
"dep:ctor",
"dep:async-trait",
"dep:serde",
"dep:serde_json",
]
export_load_snapshot = []
export_oplog_processor = []
export_save_snapshot = []
json = [
"dep:serde",
"dep:serde_json",
]
mac_address = [
"dep:mac_address",
"golem-schema/mac_address",
]
macro = [
"dep:golem-rust-macro",
"golem-schema/derive",
]
nonempty_collections = [
"dep:nonempty-collections",
"golem-schema/nonempty_collections",
]
num_bigint = [
"dep:num-bigint",
"golem-schema/num_bigint",
]
regex = ["golem-schema/regex"]
rich-validation = ["golem-schema/rich-validation"]
rust_decimal = [
"dep:rust_decimal",
"golem-schema/rust_decimal",
]
serde_json_types = [
"dep:serde_json",
"golem-schema/serde_json_types",
]
url = [
"dep:url",
"golem-schema/url",
]
[lib]
name = "golem_rust"
crate-type = ["rlib"]
path = "src/lib.rs"
harness = false
[[test]]
name = "agent"
path = "tests/agent.rs"
harness = false
[[test]]
name = "http_router"
path = "tests/http_router.rs"
harness = false
required-features = ["export_golem_agentic"]
[[test]]
name = "reflection_recipe_compile"
path = "tests/reflection_recipe_compile.rs"
harness = false
required-features = ["export_golem_agentic"]
[[test]]
name = "rich_tool_conformance"
path = "tests/rich_tool_conformance.rs"
harness = false
required-features = ["export_golem_agentic"]
[[test]]
name = "schema_reexport"
path = "tests/schema_reexport.rs"
harness = false
[[test]]
name = "tool"
path = "tests/tool.rs"
harness = false
[[test]]
name = "tool_canonical"
path = "tests/tool_canonical.rs"
harness = false
[[test]]
name = "ui"
path = "tests/ui.rs"
harness = false
[[bench]]
name = "agent_registry_bench"
path = "benches/agent_registry_bench.rs"
harness = false
required-features = ["export_golem_agentic"]
[[bench]]
name = "eager_vs_lazy_format_bench"
path = "benches/eager_vs_lazy_format_bench.rs"
harness = false
[[bench]]
name = "tool_client_bench"
path = "benches/tool_client_bench.rs"
harness = false
required-features = ["export_golem_agentic"]
[dependencies.async-trait]
version = "0.1.89"
optional = true
[dependencies.bigdecimal]
version = "0.4.9"
optional = true
[dependencies.bit-vec]
version = "0.8.0"
optional = true
[dependencies.bytes]
version = "1.11.0"
[dependencies.chrono]
version = "0.4.42"
optional = true
[dependencies.ctor]
version = "0.4.3"
optional = true
[dependencies.futures]
version = "0.3"
features = [
"std",
"async-await",
]
default-features = false
[dependencies.glob-match]
version = "0.2.1"
[dependencies.golem-rust-macro]
version = "3.0.2"
optional = true
[dependencies.golem-schema]
version = "1.6.2"
features = ["guest"]
default-features = false
[dependencies.golem-tool-metadata]
version = "1.6.2"
features = ["guest"]
default-features = false
[dependencies.http]
version = "1.3.1"
[dependencies.http-body]
version = "1"
[dependencies.http-body-util]
version = "0.1"
[dependencies.log]
version = "0.4.29"
features = ["kv"]
[dependencies.mac_address]
version = "1.1.8"
optional = true
[dependencies.nonempty-collections]
version = "1.2.1"
optional = true
[dependencies.num-bigint]
version = "0.4"
optional = true
[dependencies.rust_decimal]
version = "1.39.0"
optional = true
[dependencies.serde]
version = "1"
features = ["derive"]
optional = true
[dependencies.serde_json]
version = "1.0.145"
features = ["raw_value"]
optional = true
[dependencies.thiserror]
version = "2"
[dependencies.unicode-segmentation]
version = ">=1.0, <1.13"
[dependencies.url]
version = "2.5.7"
optional = true
[dependencies.uuid]
version = "1.19.0"
features = ["v4"]
[dependencies.wasi-logger]
version = "0.1.2"
features = ["kv"]
[dependencies.wasip3]
version = "0.7.0"
features = ["http-compat"]
[dependencies.wit-bindgen]
version = "=0.59.0"
features = [
"async",
"async-spawn",
"inter-task-wakeup",
]
[dev-dependencies.criterion]
version = "0.5"
[dev-dependencies.golem-schema]
version = "1.6.2"
features = ["rich-validation"]
default-features = false
[dev-dependencies.proptest]
version = "1.4.0"
[dev-dependencies.test-r]
version = "3.0.9"
[dev-dependencies.trybuild]
version = "1.0.116"