[package]
name = "temporalio-sdk-core-c-bridge"
version = "0.1.0"
edition = "2024"
authors = ["Spencer Judge <spencer@temporal.io>"]
license-file = { workspace = true }
description = "C bridge for Temporal Core SDK"
homepage = "https://temporal.io/"
repository = "https://github.com/temporalio/sdk-core"

[lib]
name = "temporalio_sdk_core_c_bridge"
crate-type = ["cdylib"]

[dependencies]
anyhow = "1.0"
async-trait = "0.1"
crossbeam-utils = "0.8"
futures-util = { version = "0.3", default-features = false }
http = "1.3"
libc = "0.2"
prost = { workspace = true }
# We rely on Cargo semver rules not updating a 0.x to 0.y. Per the rand
# documentation, before 1.0, minor 0.x updates _can_ break portability which can
# cause non-determinism.
rand = "0.9.2"
rand_pcg = "0.9.0"
serde = { version = "1.0", features = ["derive"] }
serde_json = "1.0"
tokio = "1.47"
tokio-stream = "0.1"
tokio-util = "0.7"
tonic = { workspace = true }
tracing = "0.1"
url = "2.5"
# This is only needed as an explicit dependency so we can enable static as a feature
xz2 = { version = "0.1" }

[dependencies.temporalio-client]
path = "../client"

[dependencies.temporalio-sdk-core]
path = "../sdk-core"
features = ["ephemeral-server"]

[dependencies.temporalio-common]
path = "../common"
features = ["envconfig"]

[dev-dependencies]
base64 = "0.21.0"
futures-util = "0.3"
thiserror = { workspace = true }

[build-dependencies]
cbindgen = { version = "0.29", default-features = false }

[features]
antithesis_assertions = ["temporalio-sdk-core/antithesis_assertions"]
xz2-static = ["xz2/static"]
