Tsukuyomi is a next generation Web framework for Rust.
The ultimate goal of this project is to provide a Web framework for developing the asynchronous and fast Web services, with the help of ecosystem of Rust for asynchronous network services like Tokio and Hyper.
Features
- Supports HTTP/1.x and HTTP/2.0 protocols, based on Hyper 0.12
- Basic support for HTTP/1.1 protocol upgrade
- TLS support by using
rustls
- Support for both TCP and Unix domain socket
- Custom error handling
- Basic support for Cookie management
- Middleware support
The following features does not currently implemented but will be supported in the future version:
- Custom session storage
- Authentication
- Embedded WebSocket handling
Getting Started
Tsukuyomi requires the latest version of Rust compiler. The required Rust toolchain is 1.27 or higher.
[]
= "0.2"
= "0.1.22"
extern crate tsukuyomi;
extern crate futures;
use ;
use Future;
// A *synchronous* handler function.
// It will return a `Responder` which immediately convert into an HTTP response,
// and does not need any asynchronous computation.
// An *asynchronous* handler function.
// It will return a `Future` representing the remaining computation in the handler.
+ Send + 'static
Using futures-await
(requires Nightly compiler)
[]
= "0.2"
= "0.1"
extern crate tsukuyomi;
extern crate futures_await as futures;
use ;
use ;
More examples are located in examples/
.
If you want to experiment with these examples, try to clone this repository and run the following command:
$ cargo run -p example-basic
Documentation
Build Status
Travis CI | Appveor | Coveralls |
---|---|---|
License
Tsukuyomi is licensed under either of MIT license or Apache License, Version 2.0 at your option.