Expand description

Utilities and traits for building trillium runtime adapters

Trillium applications should never need to depend directly on this library. Server adapters should reexport any types from this crate that an application author would need to use.

The parts of this crate that are not application facing should be expected to change more frequently than the parts that are application facing.

If you are depending on this crate for private code that cannot be discovered through docs.rs’ reverse dependencies, please open an issue.


  • an atomic counter that increments on clone & decrements on drop
  • An observer that can be cloned without modifying the clone counter, but can be used to inspect its state and awaited
  • Primary entrypoint for configuring and running a trillium server
  • A handle for a spawned trillium server. Returned by Config::handle and Config::spawn
  • This struct provides a synchronized mechanism for canceling Futures and Streams.
  • A parsed URL record.


  • A wrapper enum that has blanket implementations for common traits like TryFrom, Stream, AsyncRead, and AsyncWrite. This can contain listeners (like TcpListener), Streams (like Incoming), or bytestreams (like TcpStream).


  • This trait provides the common interface for server-side tls acceptors, abstracting over various implementations
  • Read bytes asynchronously.
  • Write bytes asynchronously.
  • Server-implementer interfaces to Config
  • Interface for runtime and tls adapters for the trillium client
  • The server trait, for standard network-based server implementations.
  • The interface that the http protocol is communicated over.

Attribute Macros