hedwig 4.1.1

A simple message bus for Rust
Documentation
[package]
name = "hedwig"
# TODO: When bumping to next major version, make sure to clean up the MRV and lints we allow in CI.
version = "4.1.1"
authors = [
    "Aniruddha Maru <aniruddhamaru@gmail.com>",
    "Simonas Kazlauskas <hedwig@kazlauskas.me>"
]
edition = "2018"
repository = "https://github.com/standard-ai/hedwig-rust.git"
homepage = "https://github.com/standard-ai/hedwig-rust"
readme = "README.md"
description = "A simple message bus for Rust"
license = "Apache-2.0"
keywords = ["pubsub", "messagebus", "microservices"]
categories = ["asynchronous", "web-programming"]

[badges]
maintenance = { status = "actively-developed" }

[features]
default = ["consume", "sink"]

# Whether publishing/consuming is enabled
publish = []
consume = ["async-trait", "either"]

# Publishers
google = ["base64", "yup-oauth2", "hyper", "http", "serde_json", "serde", "serde/derive", "uuid/serde"]

# Validators
json-schema = ["valico", "serde_json", "serde"]
protobuf = ["prost"]

# Convenience API
sink = ["futures-util/sink", "either", "publish"]

[[example]]
name = "publish"
required-features = ["google", "json-schema"]

[dependencies]
bytes = "1"
futures-util = { version = "0.3", features = ["std"], default-features = false }
pin-project = "1"
thiserror = { version = "1", default-features = false }
url = { version = "2", default-features = false }
uuid = { version = "^0.8", features = ["v4"], default-features = false }

async-trait = { version = "0.1", optional = true }
either = { version = "1", optional = true, features = ["use_std"], default-features = false }
serde = { version = "^1.0", optional = true, default-features = false }
serde_json = { version = "^1", features = ["std"], optional = true, default-features = false }
valico = { version = "^3.2", optional = true, default-features = false }
base64 = { version = "^0.13", optional = true, default-features = false }
http = { version = "^0.2", optional = true, default-features = false }
hyper = { version = "^0.14.4", optional = true, features = ["client", "stream"], default-features = false }
yup-oauth2 = { version = "5.1", optional = true, features = ["hyper-rustls"], default-features = false }
prost = { version = "0.7", optional = true, features = ["std"], default-features = false }

[dev-dependencies]
hyper-tls = "0.5.0"
prost = { version = "0.7", features = ["std", "prost-derive"] }
tokio = { version = "1", features = ["macros", "rt"] }
serde = { version = "1", features = ["derive"] }

[package.metadata.docs.rs]
all-features = true
rustdoc-args = ["--cfg", "docsrs"]