Thanks to visit codestin.com
Credit goes to lib.rs

5 releases

new 0.1.71 Jan 17, 2026
0.1.70 Jan 17, 2026
0.1.69 Jan 17, 2026
0.1.68 Jan 17, 2026
0.1.67 Jan 16, 2026

#1011 in HTTP server

MIT license

1MB
17K SLoC

Ferro

A Laravel-inspired web framework for Rust.

Installation

Add Ferro to your Cargo.toml:

[dependencies]
ferro = { package = "ferro-rs", version = "0.1" }
tokio = { version = "1", features = ["full"] }

Quick Start

use ferro::{json_response, text, Router, Server, Request, Response};

#[tokio::main]
async fn main() {
    let router = Router::new()
        .get("/", index)
        .get("/users/{id}", show_user);

    Server::new(router)
        .port(8080)
        .run()
        .await
        .expect("Failed to start server");
}

async fn index(_req: Request) -> Response {
    text("Welcome to Ferro!")
}

async fn show_user(req: Request) -> Response {
    let id = req.param("id")?;  // Returns 400 if missing
    json_response!({
        "id": id,
        "name": format!("User {}", id)
    })
}

Features

  • Simple routing - GET, POST, PUT, DELETE with route parameters
  • Async handlers - Built on Tokio for high performance
  • Response builders - Text, JSON, and custom responses
  • Error handling - Use ? operator for automatic 400 responses
  • Laravel-inspired - Familiar patterns for Laravel developers

CLI Tool

Use the Ferro CLI to scaffold new projects:

cargo install ferro-cli
ferro new myapp

License

MIT

Dependencies

~60–83MB
~1M SLoC