Skip to content

Commit e09ed0c

Browse files
authored
Merge pull request #46 from OverShifted/main
Stop automatically pulling in aws-lc as a dependency
2 parents bdd9432 + b70d263 commit e09ed0c

File tree

6 files changed

+35
-16
lines changed

6 files changed

+35
-16
lines changed

Cargo.toml

+16-3
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,11 @@ license = "Apache-2.0"
99

1010
[features]
1111
default = ["tokio-net"]
12-
rustls = ["tokio-rustls"]
12+
rustls-core = ["tokio-rustls"]
13+
rustls-aws-lc = ["rustls-core", "tokio-rustls/aws-lc-rs"]
14+
rustls-fips = ["rustls-aws-lc", "tokio-rustls/fips"]
15+
rustls-ring = ["rustls-core", "tokio-rustls/ring"]
16+
rustls = ["rustls-aws-lc", "tokio-rustls/default"]
1317
native-tls = ["tokio-native-tls"]
1418
openssl = ["tokio-openssl", "openssl_impl"]
1519
rt = ["tokio/rt"]
@@ -22,7 +26,7 @@ pin-project-lite = "0.2.13"
2226
thiserror = "1.0.30"
2327
tokio = { version = "1.0", features = ["time"] }
2428
tokio-native-tls = { version = "0.3.0", optional = true }
25-
tokio-rustls = { version = ">=0.25.0,<0.27", optional = true }
29+
tokio-rustls = { version = ">=0.25.0,<0.27", default-features = false, optional = true }
2630
tokio-openssl = { version = "0.6.3", optional = true }
2731
openssl_impl = { package = "openssl", version = "0.10.32", optional = true }
2832

@@ -60,5 +64,14 @@ name = "http-change-certificate"
6064
path = "examples/http-change-certificate.rs"
6165

6266
[package.metadata.docs.rs]
63-
features = ["rustls", "native-tls", "openssl", "rt"]
67+
features = [
68+
"rustls-core",
69+
"rustls",
70+
"rustls-aws-lc",
71+
"rustls-fips",
72+
"rustls-ring",
73+
"native-tls",
74+
"openssl",
75+
"rt"
76+
]
6477
rustdoc-args = ["--cfg", "docsrs"]

README.md

+8-2
Original file line numberDiff line numberDiff line change
@@ -13,5 +13,11 @@ It can be used to easily create a `Stream` of TLS connections from a listening s
1313

1414
See examples for examples of usage.
1515

16-
You must enable either one of the `rustls`, `native-tls`, or `openssl` features depending on which implementation you
17-
would like to use.
16+
You must enable either one of the `rustls` (more details below), `native-tls`, or `openssl`
17+
features depending on which implementation you would like to use.
18+
19+
When enabling the `rustls` feature, the `rustls` crate will be added as a dependency along
20+
with it's default [cryptography provider](https://docs.rs/rustls/latest/rustls/#cryptography-providers).
21+
To avoid this behaviour and use other cryptography providers, the `rustls-core` feature can be used instead.
22+
Additional feature flags for other [rustls built-in cryptography providers](https://docs.rs/rustls/latest/rustls/#built-in-providers) are also available:
23+
`rustls-aws-lc` (default), `rustls-fips` and `rustls-ring`

examples/echo-threads.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,9 @@ use tls_listener::{SpawningHandshakes, TlsListener};
44
use tokio::io::{copy, split};
55
use tokio::net::{TcpListener, TcpStream};
66
use tokio::signal::ctrl_c;
7-
#[cfg(all(feature = "native-tls", not(feature = "rustls")))]
7+
#[cfg(all(feature = "native-tls", not(feature = "rustls-core")))]
88
use tokio_native_tls::TlsStream;
9-
#[cfg(feature = "rustls")]
9+
#[cfg(feature = "rustls-core")]
1010
use tokio_rustls::server::TlsStream;
1111

1212
mod tls_config;

examples/echo.rs

+3-3
Original file line numberDiff line numberDiff line change
@@ -7,15 +7,15 @@ use tokio::signal::ctrl_c;
77

88
#[cfg(all(
99
feature = "native-tls",
10-
not(any(feature = "rustls", feature = "openssl"))
10+
not(any(feature = "rustls-core", feature = "openssl"))
1111
))]
1212
use tokio_native_tls::TlsStream;
1313
#[cfg(all(
1414
feature = "openssl",
15-
not(any(feature = "rustls", feature = "native-tls"))
15+
not(any(feature = "rustls-core", feature = "native-tls"))
1616
))]
1717
use tokio_openssl::SslStream as TlsStream;
18-
#[cfg(feature = "rustls")]
18+
#[cfg(feature = "rustls-core")]
1919
use tokio_rustls::server::TlsStream;
2020

2121
mod tls_config;

examples/tls_config/mod.rs

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
#[cfg(feature = "rustls")]
1+
#[cfg(feature = "rustls-core")]
22
mod config {
33
use std::sync::Arc;
44
use tokio_rustls::rustls::{
@@ -39,7 +39,7 @@ mod config {
3939

4040
#[cfg(all(
4141
feature = "native-tls",
42-
not(any(feature = "rustls", feature = "openssl"))
42+
not(any(feature = "rustls-core", feature = "openssl"))
4343
))]
4444
mod config {
4545
use tokio_native_tls::native_tls::{Identity, TlsAcceptor};
@@ -65,7 +65,7 @@ mod config {
6565

6666
#[cfg(all(
6767
feature = "openssl",
68-
not(any(feature = "rustls", feature = "native-tls"))
68+
not(any(feature = "rustls-core", feature = "native-tls"))
6969
))]
7070
mod config {
7171
use openssl_impl::ssl::{SslContext, SslFiletype, SslMethod};

src/lib.rs

+3-3
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ use tokio::time::{timeout, Timeout};
3030
pub use tokio_native_tls as native_tls;
3131
#[cfg(feature = "openssl")]
3232
pub use tokio_openssl as openssl;
33-
#[cfg(feature = "rustls")]
33+
#[cfg(feature = "rustls-core")]
3434
pub use tokio_rustls as rustls;
3535

3636
#[cfg(feature = "rt")]
@@ -270,8 +270,8 @@ where
270270
}
271271
}
272272

273-
#[cfg(feature = "rustls")]
274-
#[cfg_attr(docsrs, doc(cfg(feature = "rustls")))]
273+
#[cfg(feature = "rustls-core")]
274+
#[cfg_attr(docsrs, doc(cfg(feature = "rustls-core")))]
275275
impl<C: AsyncRead + AsyncWrite + Unpin> AsyncTls<C> for tokio_rustls::TlsAcceptor {
276276
type Stream = tokio_rustls::server::TlsStream<C>;
277277
type Error = std::io::Error;

0 commit comments

Comments
 (0)