Skip to content

Commit

Permalink
Merge branch 'features' of https://github.com/mbrubeck/async-tls into…
Browse files Browse the repository at this point in the history
… mbrubeck-features
  • Loading branch information
skade committed Jul 15, 2020
2 parents dc1b3b2 + ad27db7 commit dc30039
Show file tree
Hide file tree
Showing 5 changed files with 46 additions and 5 deletions.
2 changes: 2 additions & 0 deletions .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,8 @@ script:
fi
- cargo test
- cargo test --features early-data
- cargo test ---no-default-features --features client
- cargo test ---no-default-features --features server
- cd examples/server
- cargo check
- cd ../../examples/client
Expand Down
15 changes: 13 additions & 2 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -18,13 +18,24 @@ appveyor = { repository = "async-std/async-tls" }
[dependencies]
futures = "0.3.4"
rustls = "0.18.0"
webpki = "0.21.2"
webpki-roots = "0.19.0"
webpki = { version = "0.21.2", optional = true }
webpki-roots = { version = "0.19.0", optional = true }

[features]
default = ["client", "server"]
client = ["webpki", "webpki-roots"]
early-data = []
server = []

[dev-dependencies]
lazy_static = "1"
futures-util = "0.3"
async-std = { version = "1.0", features = ["unstable"] }

[[test]]
name = "test"
required-features = ["client", "server"]

[[test]]
name = "google"
required-features = ["client"]
23 changes: 23 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,29 @@

<br/>

# Features

`async-tls` can be used both in server and client programs. To save compilation times, you
can switch off parts of this for faster compile times.

To only use async-tls on a client, deactivate default features and use the "client" feature.

```toml
[dependencies.async-tls]
version = "0.8"
default-features = false
features = ["client"]
```

To only use async-tls on for the server side, deactivate default features and use the "server" feature.

```toml
[dependencies.async-tls]
version = "0.8"
default-features = false
features = ["server"]
```

### Simple Client

```rust
Expand Down
9 changes: 7 additions & 2 deletions src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -2,16 +2,21 @@
#![deny(unsafe_code)]

#[cfg(feature = "server")]
mod acceptor;
#[cfg(feature = "client")]
pub mod client;
mod common;
#[cfg(feature = "client")]
mod connector;
mod rusttls;
#[cfg(feature = "server")]
pub mod server;

#[cfg(feature = "server")]
pub use acceptor::{Accept, TlsAcceptor};
#[cfg(feature = "client")]
pub use connector::{Connect, TlsConnector};

#[cfg(feature = "early-data")]
#[cfg(test)]
#[cfg(all(test, feature = "client", feature = "early-data"))]
mod test_0rtt;
2 changes: 1 addition & 1 deletion src/rusttls/stream.rs
Original file line number Diff line number Diff line change
Expand Up @@ -257,6 +257,6 @@ impl<'a, IO: AsyncRead + AsyncWrite + Unpin, S: Session> AsyncWrite for Stream<'
}
}

#[cfg(test)]
#[cfg(all(test, feature = "client"))]
#[path = "test_stream.rs"]
mod test_stream;

0 comments on commit dc30039

Please sign in to comment.