# This file is part of Astarte. # # Copyright 2022 SECO Mind Srl # # SPDX-License-Identifier: CC0-1.0 [package] name = "astarte-device-sdk" version = { workspace = true } categories = ["embedded", "api-bindings"] documentation = "https://docs.rs/astarte-device-sdk" edition = { workspace = true } homepage = { workspace = true } include = [ "/LICENSES", "/examples", "/migrations", "/queries", "/src", "/CHANGELOG.md", "/LICENSE", "/README.md", "!*.sqlite*", ] keywords = ["sdk", "iot", "astarte"] license = { workspace = true } readme = "README.md" repository = { workspace = true } rust-version = { workspace = true } description = "A library that provides communication and pairing primitives to an Astarte Cluster" [workspace] resolver = "2" members = [ "astarte-device-sdk-derive", "astarte-device-sdk-mock", "e2e-test", ] # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html [workspace.package] version = "0.9.2" edition = "2021" homepage = "https://astarte.cloud/" license = "Apache-2.0" repository = "https://github.com/astarte-platform/astarte-device-sdk-rust" rust-version = "1.72.0" [dependencies] astarte-device-sdk-derive = { workspace = true, optional = true } astarte-message-hub-proto = { workspace = true, optional = true } async-trait = { workspace = true } base64 = { workspace = true } bson = { workspace = true, features = ["chrono-0_4"] } bytes = { workspace = true } chrono = { workspace = true, features = ["serde"] } flate2 = { workspace = true } flume = { workspace = true, features = ["async"] } futures = { workspace = true } http = { workspace = true } itertools = { workspace = true } once_cell = { workspace = true } openssl = { workspace = true, optional = true } rand_core = { workspace = true, features = ["getrandom"] } rcgen = { workspace = true } reqwest = { workspace = true, features = ["json", "rustls-tls"] } rumqttc = { workspace = true, features = ["use-rustls"] } rusqlite = { workspace = true } rustls = { workspace = true } rustls-native-certs = { workspace = true } rustls-pemfile = { workspace = true } serde = { workspace = true, features = ["derive"] } serde_json = { workspace = true } sync_wrapper = { workspace = true } thiserror = { workspace = true } tokio = { workspace = true, features = ["parking_lot", "macros", "fs"] } tracing = { workspace = true } url = { workspace = true, features = ["serde"] } uuid = { workspace = true, features = ["v4", "v5"] } # Transitive dependency ahash = { workspace = true } time = { workspace = true } [dev-dependencies] astarte-device-sdk-derive = { workspace = true } env_logger = { workspace = true } mockall = { workspace = true } mockito = { workspace = true } tempfile = { workspace = true } tokio = { workspace = true, features = ["rt", "rt-multi-thread", "signal"] } tokio-stream = { workspace = true, features = ["net"] } [features] default = ["interface-strict", "sqlite-trace", "tokio-multi-thread"] derive = ["dep:astarte-device-sdk-derive"] interface-doc = [] interface-strict = [] message-hub = ["dep:astarte-message-hub-proto"] openssl = ["dep:openssl"] sqlite-trace = ["rusqlite/trace"] tokio-multi-thread = ["tokio/rt-multi-thread"] [package.metadata.docs.rs] all-features = true rustc-args = ["--cfg=docsrs"] [workspace.dependencies] astarte-device-sdk = { path = "./", version = "=0.9.2" } astarte-device-sdk-derive = { version = "=0.9.2", path = "./astarte-device-sdk-derive" } astarte-message-hub-proto = "0.7.0" async-trait = "0.1.67" base64 = "0.22.0" bson = "2.7.0" bytes = "1.5.0" chrono = "0.4.20" color-eyre = "0.6.3" env_logger = "0.11.0" eyre = "0.6.12" flate2 = "1.0.0" flume = "0.11.0" futures = "0.3.0" http = "1.0.0" itertools = "0.11.0" mockall = "0.12.1" mockito = "1.4.0" once_cell = "1.18.0" openssl = "0.10.46" proc-macro2 = "1.0.75" quote = "1.0.35" rand_core = "0.6.4" rcgen = "0.13.1" reqwest = "0.12.0" rumqttc = { package = "rumqttc-dev-patched", version = "0.24.0-devpatch" } rusqlite = "0.29.0" rustls = "0.22.2" rustls-native-certs = "0.7.0" rustls-pemfile = "2.1.0" serde = "1.0.184" serde_json = "1.0.85" syn = "2.0.52" sync_wrapper = "1.0.0" tempfile = "3.6.0" thiserror = "1.0.35" tokio = "1.36.0" tokio-stream = "0.1.0" tracing = "0.1.37" tracing-subscriber = "0.3.0" url = "2.2.2" uuid = "1.1.2" # Transitive dependencies ahash = "0.8.8" time = "0.3.35"