Crate trillium_smol

Source
Expand description

§Trillium adapter using smol and async-global-executor

§Default / 12-factor applications

trillium_smol::run(|conn: trillium::Conn| async move {
    conn.ok("hello smol")
});

§Server configuration

For more details, see trillium_smol::config.

let stopper = trillium_smol::Stopper::new();
trillium_smol::config()
    .with_port(0)
    .with_host("127.0.0.1")
    .without_signals()
    .with_nodelay()
    .with_acceptor(()) // see [`trillium_rustls`] and [`trillium_native_tls`]
    .with_stopper(stopper)
    .run(|conn: trillium::Conn| async move {
        conn.ok("hello smol")
    });

§Client

trillium_testing::with_server("ok", |url| async move {
    use trillium_smol::TcpConnector;
    use trillium_client::{Conn, Client};
    let mut conn = Conn::<TcpConnector>::get(url.clone()).execute().await?;
    assert_eq!(conn.response_body().read_string().await?, "ok");

    let client = Client::<TcpConnector>::new().with_default_pool();
    let mut conn = client.get(url);
    conn.send().await?;
    assert_eq!(conn.response_body().read_string().await?, "ok");
    Ok(())
});

Re-exports§

pub use async_global_executor;
pub use async_io;
pub use async_net;

Structs§

ClientConfig
configuration for the tcp Connector
CloneCounterObserver
An observer that can be cloned without modifying the clone counter, but can be used to inspect its state and awaited
SmolTransport
A transport newtype for smol
Stopper
This struct provides a synchronized mechanism for canceling Futures and Streams.

Enums§

Binding
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).

Functions§

config
Configures a server before running it
run
Runs a trillium handler in a sync context with default config
run_async
Runs a trillium handler in an async context with default config
spawn
spawn and detach a Future that returns ()