PackageTrack
Sign in Get early access

tls-listener

wrap incoming Stream of connections in TLS

0.11.2 7.4M downloads/mo #3689 most downloaded on crates.io tmccombs/tls-listener

What this package is like to depend on

Last release 9 months ago

22 Nov 2025

Release timing varies

gaps range from 3 weeks to 10 months

Most releases are documented

notes for 18 of 23 stable releases

Nothing withdrawn

no release was ever pulled

8 years old

23 releases · first in 2019

2 releases in the last 12 months

see the full history below

Release timeline

23 releases · Feb 2019 to Nov 2025
2020 2021 2022 2023 2024 2025 2026
Release Pre-release

Releases

latest 23
  1. 0.11.2 22 Nov 2025
    Release notes

    Fixed

    • Add cfg cond for unix on UnixListener (#64)

    Full Changelog: v0.11.1...v0.11.2

    Open source →
    Release notes

    Fixed

    • Add cfg cond for unix on UnixListener (#64)
    Open source →
  2. 0.11.1 20 Nov 2025
    Release notes

    What's Changed

    Full Changelog: v0.11.0...v0.11.1

    Open source →
    Release notes

    Features

    • Add listener() method

    • Accept_generator fn

    • Add AsyncListener trait

    • Axum support

    Open source →
  3. 0.11.0 16 Feb 2025
    Release notes

    What's Changed

    • Breaking change: Minimum supported version of tokio-rustls is 0.26
    • Updated to edition 2021

    Full Changelog: v0.10.3...v0.11.0

    Open source →
  4. 0.10.3 14 Jan 2025
    Release notes

    What's Changed

    Full Changelog: v0.10.2...v0.10.3-1

    Open source →
  5. 0.10.2 31 Oct 2024
    Release notes

    What's Changed

    • Stop automatically pulling in aws-lc as a dependency by @OverShifted in #46

    New Contributors

    Full Changelog: v0.10.1...v0.10.2

    Open source →
  6. 0.10.1 06 Jul 2024
    Release notes

    What's Changed

    Full Changelog: v0.10.0...v0.10.1

    Open source →
  7. 0.10.0 15 Mar 2024
    Release notes

    Security Advisory

    Versions prior to this using the default configuration are vulnerable to a Slowloris attack.

    This version mitigates the vulnerability.

    Previous versions can mitigate the vulnerability by increasing the value passed to Builder::max_handshakes to a large
    number (such as usize::MAX). Decreasing the handshake_timeout can also help, although it is still strongly recommended
    to increase the max_handshakes more than the current default.

    Changes

    • [breaking] Change poll_accept not to have a limit on the number of pending handshakes in the queue,
      so that connections that are not making progress towards completing the handshake will not block other
      connections from being accepted. This replaces Builder::max_handshakes with Builder::accept_batch_size.
    Open source →
    Release notes

    Security Advisory

    Versions prior to this using the default configuration are vulnerable to a Slowloris attack.

    This version mitigates the vulnerability.

    Previous versions can mitigate the vulnerability by increasing the value passed to Builder::max_handshakes to a large number (such as usize::MAX). Decreasing the handshake_timeout can also help, although it is still strongly recommended to increase the max_handshakes more than the current default.

    Changes

    • [breaking] Change poll_accept not to have a limit on the number of pending handshakes in the queue, so that connections that are not making progress towards completing the handshake will not block other connections from being accepted. This replaces Builder::max_handshakes with Builder::accept_batch_size.
    Open source →
  8. 0.9.1 23 Dec 2023
    Release notes

    Miscellaneous Tasks

    • Update tokio-rustls
    Open source →
  9. 0.9.0 05 Dec 2023
    Release notes

    Features

    • [breaking] Remove until & remove option from accept
      • BREAKING CHANGE: remove until from AsyncAccept trait. Use StreamExt.take_until on the TlsListener instead.
      • BREAKING CHANGE: accept fn on AsyncAccept trait no longer returns an Option
      • BREAKING CHANGE: accept fn on TlsListener no longer returns an Option

    Upgrade

    • [breaking] Update to hyper 1.0
      • BREAKING CHANGE: Removed hyper-h1 and hyper-h2 features
    Open source →
  10. 0.8.0 19 Oct 2023
    Release notes

    This is a backwards incompatible release. The main change is that accepting a new connection now returns a tuple of the new connection, and the peer address. The AsyncAccept trait was also changed similarly. The Error enum was also changed to provide more details about the error. And if the handshake times out, it now returns an error instead of silently waiting for the next connection.

    Features

    • [breaking] Add a new error type for handshake timeouts

      • BREAKING CHANGE: Adds a new variant to the Error Enum
      • BREAKING CHANGE: The Error enum is now non_exhaustive
      • BREAKING CHANGE: Now returns an error if a handshake times out
    • [breaking] Yield remote address upon accepting a connection, and include it in errors.

      • BREAKING CHANGE: The enum variant Error::ListenerError is now struct-like instead of tuple-like, and is non_exhaustive like the enum itself.
      • BREAKING CHANGE: Error now has three type parameters, not two.
      • BREAKING CHANGE: TlsListener::accept and <TlsListener as Stream>::next yields a tuple of (connection, remote address), not just the connection.
      • BREAKING CHANGE: AsyncAccept now has an associated type Address, which poll_accept must now return along with the accepted connection.
    • [breaking] More changes for including peer address in response

      • BREAKING CHANGE: AsyncAccept::Error must implement std::error::Error
      • BREAKING CHANGE: TlsAcceptError is now a struct form variant.
    Open source →
  11. 0.7.0 01 Apr 2023
    Release notes

    Changed

    • Increase tokio-rustls version to 0.24.0
    Open source →
  12. 0.6.0 30 Dec 2022
    Release notes

    Added

    • Added additional tests and examples
    • Re-export tls engine crates as public modules.

    Changed

    • Increased default handshake timeout to 10 seconds (technically a breaking change)
    Open source →
  13. 0.5.1 22 Mar 2022
    Release notes

    Added

    Fixed

    • Fixed compilation on non-unix environments, where tokio-net doesn't include unix sockets
    • SpawningHandshakes will abort the tasks for pending connections when the linked futures are dropped. This should allow timeouts to cause the connectionto be closed.
    Open source →
  14. 0.5.0 20 Mar 2022
    Release notes

    Added

    • Added [AsyncAccept::until] method, that creates a new AsyncAccept that will stop accepting connections after another future finishes.
    • Added hyper submodule to add additional support for hyper. Specifically, a newtype for the hyper Accept trait for AsyncAccept.
    • Added SpawningHandshakes struct behind the rt feature flag. This allows you to perform multiple handshakes in parallel with a multi-threaded runtime.

    Changed

    • Backwards incompatible: AsyncAccept::poll_accept now returns, Poll<Option<Result<...>>> instead of Poll<Result<...>>. This allows the incoming stream of connections to stop, for example, if a graceful shutdown has been initiated. impls provided by this crate have been updated, but custom implementations of AsyncAccept, or direct usage of the trait may break.
    • Removed unnecessary type bounds (see #14). Potentially a breaking change, although I'd be suprised if any real code was affected.
    Open source →
  15. 0.4.3 20 Mar 2022
    Release notes
    • Added TlsListener::replace_accept_pin() function to allow replacing the listener certificate at runtime, when the listener is pinned.
    Open source →
  16. 0.4.2 13 Mar 2022
    Release notes

    Added

    • Added TlsListener::replace_acceptor() function to allow replacing the listener certificate at runtime.
    Open source →
  17. 0.4.1 09 Mar 2022
    Release notes

    Changed

    • The implementation of AsyncTls for tokio_native_tls::TlsAcceptor now requires the connection type to implement Send. This in turn allows TlsListener to be Send when using the native-tls feature. Technically, this is a breaking change. However, in practice it is unlikely to break existing code and makes using TlsListener much easier to use when native-tls is enabled.
    Open source →
  18. 0.4.0 24 Feb 2022
    Release notes

    NOTE: This release contains several breaking changes.

    Added

    Changed

    • The TLS backend is now configurable. Both rustls and native-tls are supported. Other backends can also be used by implementing the AsyncTls trait.
      • You must now supply either the rustls or native-tls features to get support for a tls backend.
      • Unfortunately, the machinery for this required adding an additional type parameter to TlsListener.
    • The TlsListener stream now returns a tls_listener::Error instead of std::io::Error type.
    • Signatures of TcpListener::new() and builder() have changed to now take an argument of the TLS type rather than a rustls::ServerConfig, to update existing calls, replace builder(config) with builder(Arc::new(config).into()).

    Fixed

    • Crate will now compile when linked against a target that doesn't explicitly enable the tokio/time and hyper/tcp features.
    Open source →
  19. 0.3.0 19 Jan 2022

    Nothing published for this version

  20. 0.2.1 05 Jan 2021

    Nothing published for this version

  21. 0.2.0 02 Jan 2021

    Nothing published for this version

  22. 0.1.1 04 Feb 2019

    Nothing published for this version

  23. 0.1.0 01 Feb 2019

    Nothing published for this version

Every package, every release, already written down.

The archive is open and free. Watching your own project is what we are building next.

Browse the archive