[package] name = "matter-iot" version = "0.1.0" edition = "2018" authors = ["Kedar Sovani "] description = "Native RUST implementation of the Matter (Smart-Home) ecosystem" repository = "https://github.com/kedars/matter-rs" readme = "README.md" keywords = ["matter", "smart", "smart-home", "IoT", "ESP32"] categories = ["embedded", "network-programming"] license = "MIT" [lib] name = "matter" path = "src/lib.rs" [features] default = ["std", "crypto_mbedtls"] std = ["alloc", "env_logger", "chrono", "rand", "qrcode", "libmdns", "simple-mdns", "simple-dns", "smol"] alloc = [] nightly = [] crypto_openssl = ["openssl", "foreign-types", "hmac", "sha2"] crypto_mbedtls = ["mbedtls", "alloc"] crypto_esp_mbedtls = ["esp-idf-sys"] crypto_rustcrypto = ["sha2", "hmac", "pbkdf2", "hkdf", "aes", "ccm", "p256", "elliptic-curve", "crypto-bigint", "x509-cert"] [dependencies] boxslab = { path = "../boxslab" } matter_macro_derive = { path = "../matter_macro_derive" } bitflags = "1.3" byteorder = "1.4.3" heapless = "0.7.16" num = "0.4" num-derive = "0.3.3" num-traits = "0.2.15" strum = { version = "0.24", features = ["derive"], default-features = false, no-default-feature = true } log = { version = "0.4.17", features = ["max_level_debug", "release_max_level_debug"] } subtle = "2.4.1" safemem = "0.3.3" colored = "2.0.0" # TODO: Requires STD # STD-only dependencies env_logger = { version = "0.10.0", default-features = false, optional = true } chrono = { version = "0.4.23", optional = true, default-features = false, features = ["clock", "std"] } rand = { version = "0.8.5", optional = true } qrcode = { version = "0.12", default-features = false, optional = true } # Print QR code libmdns = { version = "0.7", optional = true } simple-mdns = { version = "0.4", features = ["sync"], optional = true } simple-dns = { version = "0.5", optional = true } astro-dnssd = { version = "0.3", optional = true } # On Linux needs avahi-compat-libdns_sd, i.e. on Ubuntu/Debian do `sudo apt-get install libavahi-compat-libdnssd-dev` zeroconf = { version = "0.10", optional = true } smol = { version = "1.3.0", optional = true} # crypto openssl = { git = "https://github.com/sfackler/rust-openssl", optional = true } mbedtls = { git = "https://github.com/fortanix/rust-mbedtls", optional = true } esp-idf-sys = { version = "0.32", optional = true } foreign-types = { version = "0.3.2", optional = true } sha2 = { version = "0.10", default-features = false, optional = true } hmac = { version = "0.12", optional = true } pbkdf2 = { version = "0.12", optional = true } hkdf = { version = "0.12", optional = true } aes = { version = "0.8", optional = true } ccm = { version = "0.5", default-features = false, features = ["alloc"], optional = true } p256 = { version = "0.13.0", default-features = false, features = ["arithmetic", "ecdh", "ecdsa"], optional = true } elliptic-curve = { version = "0.13.2", optional = true } crypto-bigint = { version = "0.4", default-features = false, optional = true } # TODO: requires STD x509-cert = { version = "0.2.0", default-features = false, features = ["pem", "std"], optional = true } # to compute the check digit verhoeff = "1" [[example]] name = "onoff_light" path = "../examples/onoff_light/src/main.rs" [[example]] name = "speaker" path = "../examples/speaker/src/main.rs"