[package] name = "mbus-api" version = "0.3.5" authors = ["Piers Finlayson "] edition = "2018" license = "GPL-3.0-or-later" repository = "https://github.com/packom/mbus-api" documentation = "https://github.com/packom/mbus-api" homepage = "https://github.com/packom/mbus-api" description = "A RESTful HTTP API exposing (wired) M-Bus functionality" readme = "README.md" keywords = ["mbus","m-bus","openapi","swagger","http"] categories = ["api-bindings","hardware-support","network-programming","embedded","web-programming"] [badges] maintenance = { status = "actively-developed" } travis-ci = { repository = "packom/mbus-api", branch = "master" } [features] default = ["client", "server"] client = [ "hyper", "hyper-openssl", "hyper-tls", "native-tls", "openssl", "url" ] server = [ "serde_ignored", "hyper", "regex", "percent-encoding", "url", "lazy_static" ] conversion = ["frunk", "frunk_derives", "frunk_core", "frunk-enum-core", "frunk-enum-derive"] [target.'cfg(any(target_os = "macos", target_os = "windows", target_os = "ios"))'.dependencies] native-tls = { version = "0.2", optional = true } hyper-tls = { version = "0.4", optional = true } [target.'cfg(not(any(target_os = "macos", target_os = "windows", target_os = "ios")))'.dependencies] hyper-openssl = { version = "0.8", optional = true } openssl = {version = "0.10", optional = true } [dependencies] # Common async-trait = "0.1.24" chrono = { version = "0.4", features = ["serde"] } futures = "0.3" swagger = "5.0.0-alpha-1" log = "0.4.0" mime = "0.3" serde = { version = "1.0", features = ["derive"] } serde_json = "1.0" # Crates included if required by the API definition # TODO: this should be updated to point at the official crate once # https://github.com/RReverser/serde-xml-rs/pull/45 is accepted upstream serde-xml-rs = { version = "0.4.0" } # Common between server and client features hyper = {version = "0.13", optional = true} serde_ignored = {version = "0.1.1", optional = true} url = {version = "2.1", optional = true} # Client-specific # Server, and client callback-specific lazy_static = { version = "1.4", optional = true } percent-encoding = {version = "2.1.0", optional = true} regex = {version = "1.3", optional = true} # Conversion frunk = { version = "0.3.0", optional = true } frunk_derives = { version = "0.3.0", optional = true } frunk_core = { version = "0.3.0", optional = true } frunk-enum-derive = { version = "0.2.0", optional = true } frunk-enum-core = { version = "0.2.0", optional = true } [dev-dependencies] clap = "2.25" env_logger = "0.7" tokio = { version = "0.2", features = ["rt-threaded", "macros", "stream"] } native-tls = "0.2" tokio-tls = "0.3" [target.'cfg(not(any(target_os = "macos", target_os = "windows", target_os = "ios")))'.dev-dependencies] tokio-openssl = "0.4" openssl = "0.10" [[example]] name = "client" required-features = ["client"] [[example]] name = "server" required-features = ["server"]