[package]
# We name the package `synapse` so that things like logging have the right
# logging target.
name = "synapse"

# dummy version. See pyproject.toml for the Synapse's version number.
version = "0.1.0"

edition = "2021"
rust-version = "1.82.0"

[lib]
name = "synapse"
# We generate a `cdylib` for Python and a standard `lib` for running
# tests/benchmarks.
crate-type = ["lib", "cdylib"]

# This is deprecated, see tool.maturin in pyproject.toml.
# It is left here for compatibilty with maturin < 0.15.
[package.metadata.maturin]
# This is where we tell maturin where to place the built library.
name = "synapse.synapse_rust"

[dependencies]
anyhow = "1.0.63"
base64 = "0.22.1"
bytes = "1.6.0"
headers = "0.4.0"
http = "1.1.0"
lazy_static = "1.4.0"
log = "0.4.17"
mime = "0.3.17"
pyo3 = { version = "0.27.2", features = [
    "macros",
    "anyhow",
    "abi3",
    "abi3-py310",
    # So we can pass `bytes::Bytes` directly back to Python efficiently,
    # https://docs.rs/pyo3/latest/pyo3/bytes/index.html
    "bytes",
] }
pyo3-log = "0.13.1"
pythonize = "0.27.0"
regex = "1.6.0"
sha2 = "0.10.8"
serde = { version = "1.0.144", features = ["derive"] }
serde_json = "1.0.85"
ulid = "1.1.2"
icu_segmenter = "2.0.0"
reqwest = { version = "0.12.15", default-features = false, features = [
    "http2",
    "stream",
    "rustls-tls-native-roots",
] }
http-body-util = "0.1.3"
futures = "0.3.31"
tokio = { version = "1.44.2", features = ["rt", "rt-multi-thread"] }
once_cell = "1.18.0"

[features]
extension-module = ["pyo3/extension-module"]
default = ["extension-module"]

[build-dependencies]
blake2 = "0.10.4"
hex = "0.4.3"
rustc_version = "0.4.1"
