[package]
name = "river-data-core"
version = "0.11.2"
edition = "2024"
rust-version = "1.95"
description = "Client, sync runner, and shared types for the river-data platform"
license = "MIT"
repository = "https://github.com/RIVER-EPFL/river-data-core"
keywords = ["sync", "client", "sensors", "environmental", "control-plane"]
categories = ["api-bindings", "science"]
exclude = ["r_reference/**", "tests/fixtures/**"]
[lints.rust]
unsafe_code = "forbid"
[features]
default = []
client = [
"dep:reqwest",
"dep:tokio",
"dep:async-trait",
"dep:dotenvy",
"dep:tracing-subscriber",
"tokio/rt-multi-thread",
]
openapi = ["dep:utoipa"]
[dependencies]
serde = { version = "1.0", features = ["derive"] }
serde_json = { version = "1.0", features = ["float_roundtrip"] }
chrono = { version = "0.4", features = ["serde"] }
uuid = { version = "1.11", features = ["v4", "serde"] }
tracing = "0.1"
thiserror = "2.0"
tokio = { version = "1.43", features = ["rt", "time", "signal", "sync", "macros"], optional = true }
reqwest = { version = "0.12", features = ["json", "rustls-tls"], default-features = false, optional = true }
async-trait = { version = "0.1", optional = true }
dotenvy = { version = "0.15", optional = true }
tracing-subscriber = { version = "0.3", features = ["env-filter"], optional = true }
utoipa = { version = "5.3", features = ["chrono", "uuid"], optional = true }
[dev-dependencies]
http = "1.0"
tokio = { version = "1.43", features = ["macros", "rt-multi-thread"] }
wiremock = "0.6"
[[example]]
name = "minimal_backend"
required-features = ["client"]
[[example]]
name = "csv_folder"
required-features = ["client"]
[[example]]
name = "reconciled_backend"
required-features = ["client"]