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(8082)
.with_host("0.0.0.0")
.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
configuration for the tcp Connector
This struct provides a synchronized mechanism for canceling
Futures and Streams.
tcp connector for smol based on async_net::TcpStream