async-native-tls

Crates.ioasync-native-tls
lib.rsasync-native-tls
version0.5.0
sourcesrc
created_at2019-12-12 17:20:21.373661
updated_at2023-03-02 01:14:48.486539
descriptionNative TLS using futures
homepagehttps://docs.rs/crate/async-native-tls/
repositoryhttps://github.com/async-email/async-native-tls
max_upload_size
id188826
size79,604
link2xt (link2xt)

documentation

https://docs.rs/crate/async-native-tls/

README

async-native-tls

Asynchronous Native TLS

Crates.io version Download docs.rs docs

API Docs | Releases


Native TLS for async-std or tokio.

This crate uses SChannel on Windows (via schannel), Secure Transport on OSX (via security-framework), and OpenSSL (via openssl) on all other platforms.

Installation

$ cargo add async-native-tls

Cargo Feature Flags

  • runtime-async-std (on by default): Use the async-std runtime.

  • runtime-tokio: Use the tokio runtime. This is mutually exclusive with runtime-async-std.

Example

async-std

Requires runtime-async-std feature (on by default).

# Cargo.toml
[dependencies]
async-native-tls = "0.4"
use async_std::prelude::*;
use async_std::net::TcpStream;

let stream = TcpStream::connect("google.com:443").await?;
let mut stream = async_native_tls::connect("google.com", stream).await?;
stream.write_all(b"GET / HTTP/1.0\r\n\r\n").await?;

let mut res = Vec::new();
stream.read_to_end(&mut res).await?;
println!("{}", String::from_utf8_lossy(&res));

tokio

Requires runtime-tokio feature.

# Cargo.toml
[dependencies]
async-native-tls = { version = "0.4", default-features = false, features = [ "runtime-tokio" ] }
use tokio::prelude::*;
use tokio::net::TcpStream;

let stream = TcpStream::connect("google.com:443").await?;
let mut stream = async_native_tls::connect("google.com", stream).await?;
stream.write_all(b"GET / HTTP/1.0\r\n\r\n").await?;

let mut res = Vec::new();
stream.read_to_end(&mut res).await?;
println!("{}", String::from_utf8_lossy(&res));

Contributing

Want to join us? Check out our "Contributing" guide and take a look at some of these issues:

License

Licensed under either of Apache License, Version 2.0 or MIT license at your option.
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in this crate by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.
Commit count: 61

cargo fmt