mbus-api 0.3.1

A RESTful HTTP API exposing (wired) M-Bus functionality
Documentation
[package]
name = "mbus-api"
version = "0.3.1"
authors = ["Piers Finlayson <piers@packom.net>"]
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"]