18 releases (4 breaking)
0.5.3 | Dec 26, 2018 |
---|---|
0.5.2 | Dec 25, 2018 |
0.4.3 | Nov 30, 2018 |
0.3.2 | Oct 24, 2018 |
0.1.4 | Jun 16, 2018 |
#255 in #header
Used in 6 crates
235KB
7K
SLoC
Asynchronous Web framework for Rust.
Features
- Type-safe and composable handlers based on
Extractor
system - Scoped routing and middlewares
- Asynchronous HTTP server based on
tokio
,hyper
andtower-service
- HTTP/1.1 protocol upgrade
- Both of TCP and Unix domain socket support
- TLS support (with
native-tls
,rustls
oropenssl
)
Usage
use {
std::net::SocketAddr,
tsukuyomi::{
App,
config::prelude::*,
},
tsukuyomi_server::Server,
};
fn main() -> tsukuyomi_server::Result<()> {
let app = App::create(
path!("/")
.to(endpoint::reply("Hello, world.\n"))
)?;
let addr = SocketAddr::from(([127, 0, 0, 1], 4000));
println!("Listening on http://{}", addr);
Server::new(app).bind(addr).run()
}
Resources
Extensions
tsukuyomi-askama
- template support usingaskama
tsukuyomi-cors
- CORS supporttsukuyomi-juniper
- GraphQL integration usingjuniper
tsukuyomi-session
- session managementtsukuyomi-tungstenite
- WebSocket support usingtungstenite
License
Tsukuyomi is licensed under either of MIT license or Apache License, Version 2.0 at your option.
Dependencies
~8–16MB
~233K SLoC