|
|
Log in / Subscribe / Register

A decade of Rustls

Joe Birr-Pixton has written a blog post reflecting on a decade of the Rustls TLS-library project and looking ahead to the upcoming 0.24 release and an eventual 1.0 release.

Rustls began with a first commit on May 2, 2016. Progress was quick: a month later, on June 5, it could interoperate with most sites on the web. The first release, 0.1.0, followed on August 27, 2016 – less than four months after the first commit.

[...] From the 0.1.0 release, the project moved through a long series of releases over the following eight years, building out functionality, hardening and refining the API. That sequence of release lines culminated in 0.23, released on February 29, 2024.

The 0.23 release line has been a stable one: in the time since, it has seen 43 non-breaking releases. That stability didn't come with stagnation. The 0.23 line delivered a wide range of important features, including a FIPS-certified cryptography option, certificate compression, Encrypted ClientHello, post-quantum cryptography, and performance improvements.



to post comments

Benchmarks

Posted Sep 10, 2026 14:28 UTC (Thu) by Tarnyko (subscriber, #90061) [Link] (6 responses)

Interesting, though the blog post is a bit too much of a TL;DR: it quotes lots of things without context.
Probably explains why there are few comments yet...

I was a lot more interested in benchmarks: https://rustls.dev/perf/2026-03-07-report/.

It was made 6 months ago, but still, if I interpret things correctly:
- Rustls is close behind BoringSSL for "sending", and 100% flattens it for "receiving"+"handshakes";
- OpenSSL3 is unimpressive for "sending+receiving", and blatantly horrible for "handshakes" (not surprising, given this has been a recurrent topic on the web).

By reading this, it would make Rustls the best-performance library; unless I am forgetting an alternative?

Benchmarks

Posted Sep 10, 2026 14:41 UTC (Thu) by joib (subscriber, #8541) [Link] (5 responses)

Rustls AFAIU uses aws-lc by default, which the benchmarks you link to also use. I suppose you could use aws-lc directly as well. Presumably the performance would be close to rustls?

Benchmarks

Posted Sep 10, 2026 15:09 UTC (Thu) by Tarnyko (subscriber, #90061) [Link] (4 responses)

I see! I expected Rustls to have its own implementation... but this helps explaining how it managed to be functional only 1 month after its initial commit ^^.

In this case indeed, the benchmark is probably 99% measuring aws-lc's performance.
I see there's another backend named "ring", that was slighty slower last time it was checked - the choice of "aws-lc" here suggests it was still the case 3 months ago.

I guess the question of valid alternatives stays, unless they were already beaten by BoringSSL.
This article ( https://shattered-io.translate.goog/de/openssl-vs-borings...) indeed mentions that WolfSSL is slighlty slower, to the benefit a of smaller memory footprint.

Benchmarks

Posted Sep 10, 2026 16:01 UTC (Thu) by MarcB (subscriber, #101804) [Link] (3 responses)

Rustls is TLS, not cryptography (In OpenSSL terms, it is purely libssl, not libcrypto).

It always needs an additional crypto provider. aws-lc is relatively new; initially it used ring, which is still a built-in provider. But you can also use OpenSSL and others.

Note that aws-lc has no clue about TLS. It is a pure crypto provider.

Benchmarks

Posted Sep 10, 2026 18:30 UTC (Thu) by Tarnyko (subscriber, #90061) [Link] (2 responses)

Thanks, it makes its a lot clearer!

- Rustls: is the TLS network protocol
- aws-lc: is the crypto provider, needed so that a real-world TLS exchange actually succeeds.

So the benchmark is actually about this very specific pair. It wouldn't make sense to bench aws-lc alone for real-world comms.

Benchmarks

Posted Sep 11, 2026 1:40 UTC (Fri) by tarkasteve (subscriber, #94934) [Link] (1 responses)

To clarify further, aws-lc-rs is the default crypto engine, but others can be plugged-in. An interesting one is graviola which uses pure-assembly formaly-proven crypto primitives.

Benchmarks

Posted Sep 13, 2026 14:11 UTC (Sun) by johnjones (guest, #5462) [Link]

why are they not benchmarking against https://github.com/Mbed-TLS/mbedtls ?

rustls just works

Posted Sep 10, 2026 22:05 UTC (Thu) by roc (subscriber, #30627) [Link] (1 responses)

The best thing about rustls is that you just pull it into your Rust project and it just works without builds breaking left and right because of OpenSSL versioning insanity.

rustls just works

Posted Sep 11, 2026 7:15 UTC (Fri) by Tarnyko (subscriber, #90061) [Link]

Agreed! That's also why I use it myself (easy to build & deploy on desktop OSes - with the right options).

rustls and Python

Posted Sep 11, 2026 8:07 UTC (Fri) by cyperpunks (subscriber, #39406) [Link] (1 responses)

Is rustls the preferred TLS backend lib for Python these days?

rustls and Python

Posted Sep 12, 2026 1:01 UTC (Sat) by tialaramex (subscriber, #21167) [Link]

In what sense? Python's standard library ssl is tightly bound to OpenSSL.


Copyright © 2026, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds