Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/wansenai/summer-boot

Summer Boot (async web framework)
https://github.com/wansenai/summer-boot

cargo framework rust web

Last synced: about 7 hours ago
JSON representation

Summer Boot (async web framework)

Awesome Lists containing this project

README

        

Summer Boot




A web framework for Rust





Crates.io version



Download



ors enabled


rust version



license


Encapsulating [tide](https://github.com/http-rs/tide), combined with the design principles of spring boot.
will simplify web development and enable developers to focus more on business API development.

```rust
summer_boot::log Logger started
summer_boot::log
_____ ____ _
/ ____| | _ \ | |
| (___ _ _ _ __ ___ _ __ ___ ___ _ __ | |_) | ___ ___ | |_
\___ \| | | | '_ ` _ \| '_ ` _ \ / _ \ '__| | _ < / _ \ / _ \| __|
____) | |_| | | | | | | | | | | | __/ | | |_) | (_) | (_) | |_
|_____/ \__,_|_| |_| |_|_| |_| |_|\___|_| |____/ \___/ \___/ \__|

:: Summer Boot Version:: (1.4.2)

summer_boot::server::server Server listening on http://0.0.0.0:8080
```

## Quick Start

Cargo.toml:
```rust
summer-boot = "1.4.2"
```

Add resuorce configuration file to src directory

src/resources/application.yml
```yml
profiles:
active: test
```
src/resources/application-test.yml
```yml
server:
port: 8080
context_path: /
```

src/main.rs
```rust
use serde::Deserialize;
use summer_boot::{Request, Result};
use summer_boot::log;

#[derive(Debug, Deserialize)]
struct User {
name: String,
age: u16,
}

#[summer_boot::auto_scan]
#[summer_boot::main]
async fn main() {
summer_boot::run();
}

#[summer_boot::post("/test/api")]
async fn test_api(mut req: Request<()>) -> Result {
let User { name, age } = req.body_json().await?;
Ok(format!("Hello, {}! {} years old", name, age).into())
}
```

## License

Licensed under either of

- [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0)

[![FOSSA Status](https://app.fossa.com/api/projects/git%2Bgithub.com%2Fsummer-os%2Fsummer-boot.svg?type=large)](https://app.fossa.com/projects/git%2Bgithub.com%2Fsummer-os%2Fsummer-boot?ref=badge_large)