# Poem
<div align="center">
<img src="https://github.com/poem-web/poem/workflows/CI/badge.svg" />
<img src="https://codecov.io/gh/poem-web/poem/branch/master/graph/badge.svg" />
<a href="https://crates.io/crates/poem">
<img src="https://img.shields.io/crates/v/poem.svg?style=flat-square"
alt="Crates.io version" />
</a>
<a href="https://crates.io/crates/poem">
<img src="https://img.shields.io/crates/d/poem.svg?style=flat-square"
alt="Download" />
</a>
<a href="https://docs.rs/poem">
<img src="https://img.shields.io/badge/docs-latest-blue.svg?style=flat-square"
alt="docs.rs docs" />
</a>
<a href="https://github.com/rust-secure-code/safety-dance/">
<img src="https://img.shields.io/badge/unsafe-forbidden-success.svg?style=flat-square"
alt="Unsafe Rust forbidden" />
</a>
</div>
> A program is like a poem, you cannot write a poem without writing it. --- Dijkstra
A full-featured and easy-to-use web framework with
the Rust programming language.
It is:
* **Fast**: Both _Ease_ of use and performance.
* **Minimal generalization**: Minimizing the use of generics.
## Example
```rust
use poem::{get, handler, route, web::Path, Server};
#[handler]
async fn hello(Path(name): Path<String>) -> String {
format!("hello: {}", name)
}
#[tokio::main]
async fn main() {
let app = route().at("/hello/:name", get(hello));
let server = Server::bind("127.0.0.1:3000").await.unwrap();
server.run(app).await.unwrap();
}
```
More examples can be found [here][examples].
[examples]: https://github.com/poem-web/poem/tree/master/examples
## Contributing
:balloon: Thanks for your help improving the project! We are so happy to have you!
## License
Licensed under either of
* Apache License, Version 2.0,
([LICENSE-APACHE](./LICENSE-APACHE) or http://www.apache.org/licenses/LICENSE-2.0)
* MIT license ([LICENSE-MIT](./LICENSE-MIT) or http://opensource.org/licenses/MIT)
at your option.
### Contribution
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in Poem by you, shall be licensed as Apache, without any additional terms or conditions.