[package]
name = "actix-tls"
version = "3.0.0-beta.2"
authors = ["Nikolay Kim <fafhrd91@gmail.com>"]
description = "TLS acceptor and connector services for Actix ecosystem"
keywords = ["network", "tls", "ssl", "async", "transport"]
homepage = "https://actix.rs"
repository = "https://github.com/actix/actix-net.git"
documentation = "https://docs.rs/actix-tls"
categories = ["network-programming", "asynchronous"]
license = "MIT OR Apache-2.0"
edition = "2018"

[package.metadata.docs.rs]
features = ["openssl", "rustls", "native-tls", "accept", "connect", "uri"]

[lib]
name = "actix_tls"
path = "src/lib.rs"

[features]
default = ["accept", "connect", "uri"]

# enable acceptor services
accept = []

# enable connector services
connect = []

# use openssl impls
openssl = ["tls-openssl", "tokio-openssl"]

# use rustls impls
rustls = ["tls-rustls", "webpki", "webpki-roots", "tokio-rustls"]

# use native-tls impls
native-tls = ["tls-native-tls", "tokio-native-tls"]

# support http::Uri as connect address
uri = ["http"]

[dependencies]
actix-codec = "0.4.0-beta.1"
actix-rt = { version = "2.0.0", default-features = false }
actix-service = "2.0.0-beta.3"
actix-utils = "3.0.0-beta.1"

derive_more = "0.99.5"
futures-core = { version = "0.3.7", default-features = false, features = ["alloc"] }
http = { version = "0.2.3", optional = true }
log = "0.4"

# openssl
tls-openssl = { package = "openssl", version = "0.10", optional = true }
tokio-openssl = { version = "0.6", optional = true }

# TODO: Reduce dependencies where tokio wrappers re-export base crate.

# rustls
tls-rustls = { package = "rustls", version = "0.19", optional = true }
tokio-rustls = { version = "0.22", optional = true }
webpki = { version = "0.21", optional = true }
webpki-roots = { version = "0.21", optional = true }

# native-tls
tls-native-tls = { package = "native-tls", version = "0.2", optional = true }
tokio-native-tls = { version = "0.3", optional = true }

[dev-dependencies]
actix-rt = "2.0.0"
actix-server = "2.0.0-beta.2"
bytes = "1"
env_logger = "0.8"
futures-util = { version = "0.3.7", default-features = false, features = ["sink"] }
log = "0.4"
trust-dns-resolver = "0.20.0"

[[example]]
name = "basic"
required-features = ["accept", "rustls"]