#tls #connector #rustls

rustls-connector

Connector similar to openssl or native-tls for rustls

58 releases

Uses new Rust 2024

new 0.23.2 May 11, 2026
0.23.0 Apr 18, 2026
0.22.0 Aug 19, 2025
0.21.7 May 10, 2025
0.7.0 Jun 10, 2019

#715 in Network programming

Download history 108645/week @ 2026-01-19 124000/week @ 2026-01-26 145258/week @ 2026-02-02 165656/week @ 2026-02-09 155764/week @ 2026-02-16 206137/week @ 2026-02-23 198896/week @ 2026-03-02 227151/week @ 2026-03-09 212463/week @ 2026-03-16 163022/week @ 2026-03-23 157881/week @ 2026-03-30 168162/week @ 2026-04-06 181010/week @ 2026-04-13 177426/week @ 2026-04-20 171422/week @ 2026-04-27 117703/week @ 2026-05-04

656,746 downloads per month
Used in 27 crates (10 directly)

BSD-2-Clause

21KB
267 lines

API Docs Build status Downloads Dependency Status LICENSE

A connector similar to openssl or native-tls for rustls.

Rustls certificates store

  • platform-verifier (default)
  • native-certs
  • webpki-root-certs

Warning about crypto backends for rustls

A crypto implementation must be enabled in rustls using feature flags. We mimic what rustls does, providing one feature flag per implementation and enabling the same as rustls by default. Available options are:

  • rustls--aws_lc_rs (default)
  • rustls--ring

Example

To connect to a remote server:

use rustls_connector::RustlsConnector;

use std::{
    io::{Read, Write},
    net::TcpStream,
};

let connector = RustlsConnector::new_with_platform_verifier().unwrap();
let stream = TcpStream::connect("google.com:443").unwrap();
let mut stream = connector.connect("google.com", stream).unwrap();

stream.write_all(b"GET / HTTP/1.0\r\n\r\n").unwrap();
let mut res = vec![];
stream.read_to_end(&mut res).unwrap();
println!("{}", String::from_utf8_lossy(&res));

Dependencies

~7–27MB
~538K SLoC