Crates.io | surfer |
lib.rs | surfer |
version | 0.3.2 |
source | src |
created_at | 2024-03-15 14:48:33.412196 |
updated_at | 2024-03-18 17:07:45.116027 |
description | A small backend "framework" for Rust |
homepage | |
repository | |
max_upload_size | |
id | 1174787 |
size | 719,191 |
A lightweight, asynchronous backend framework for Rust with Rust
It's a simple, lightweight and asynchronous backend framework for Rust. It's built on top of async-std
and provides easy route registration and handling of HTTP requests. It also provides built-in response structs for response creation and JSON response support for structs with Serialize and Deserialize implemented.
route!
macro#[surfer_launch]
macro #[async_std::main]
(internally it's the same thing :D)Clone the repository and add the following to your Cargo.toml
:
[dependencies]
surfer = "0.3.2"
extern crate surfer;
use serde_json::json;
use surfer::request::Method::GET;
use surfer::request::Request;
use surfer::response::json_response::JsonResponse;
use surfer::response::{IntoResponse, Response};
use surfer::route;
use surfer::server::Server;
use surfer_macros::surfer_launch;
async fn index(_: Request) -> Response {
let json_obj = json!({
"message": "Hello, Surfer!"
});
JsonResponse {
status_code: 200,
headers: None,
body: json_obj,
}
.into_response()
.await
}
#[surfer_launch]
async fn main() {
let mut server = Server::new(None, None);
server.register_route(route!(GET, "/", index));
server.listen().await;
}
For more detailed documentation, get known to the source code ðŸ«