surfer

Crates.iosurfer
lib.rssurfer
version0.3.2
sourcesrc
created_at2024-03-15 14:48:33.412196
updated_at2024-03-18 17:07:45.116027
descriptionA small backend "framework" for Rust
homepage
repository
max_upload_size
id1174787
size719,191
P. Arndt (Padi2312)

documentation

README

Surfer Logo

Surfer

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.

🚀 Features

  • Asynchronous handling of HTTP requests (using async-std)
  • Easy route registration with the route! macro
  • Built-in response structs for easy response creation
  • JSON response support for structs with Serialize and Deserialize implemented
  • Use the #[surfer_launch] macro to start the server to not have to write #[async_std::main] (internally it's the same thing :D)

📦 Installation

Clone the repository and add the following to your Cargo.toml:

[dependencies]
surfer = "0.3.2"

📚 Example Usage

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;
}

📖 Documentation

For more detailed documentation, get known to the source code 🫠

Commit count: 0

cargo fmt