| Crates.io | rustisan |
| lib.rs | rustisan |
| version | 0.0.1 |
| created_at | 2025-07-19 18:31:59.086186+00 |
| updated_at | 2025-07-19 18:31:59.086186+00 |
| description | Command-line interface for the Rustisan web framework |
| homepage | |
| repository | https://github.com/rustisan/rustisan |
| max_upload_size | |
| id | 1760429 |
| size | 1,632,194 |

The Laravel-inspired web framework for Rust
Getting Started โข Documentation โข Examples โข API Reference
Rustisan is a modern web framework for Rust that brings the elegance and simplicity of Laravel to the Rust ecosystem. Built on top of Axum, Rustisan provides a familiar developer experience for those coming from Laravel while leveraging Rust's performance and safety guarantees.
Add Rustisan to your Cargo.toml:
[dependencies]
rustisan-core = "0.1.0"
rustisan-orm = "0.1.0"
tokio = { version = "1.0", features = ["full"] }
serde = { version = "1.0", features = ["derive"] }
serde_json = "1.0"
use rustisan_core::{Application, Response};
use std::net::SocketAddr;
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
// Create application
let mut app = Application::new();
// Define routes
app.router().get("/", || async {
Response::json(serde_json::json!({
"message": "Welcome to Rustisan!",
"framework": "Rustisan"
})).unwrap()
});
// Start server
let addr = SocketAddr::from(([127, 0, 0, 1], 3000));
app.serve(addr).await?;
Ok(())
}
use rustisan_core::{Application, Response};
let mut app = Application::new();
// Simple route
app.router().get("/", || async {
Response::ok("Hello World!").unwrap()
});
// Route with parameter
app.router().get("/users/:id", || async {
Response::json(serde_json::json!({
"user_id": 123,
"name": "John Doe"
})).unwrap()
});
// API routes with prefix
app.router().group("/api/v1", |group| {
group.get("/users", || async {
Response::json(serde_json::json!({
"users": ["John", "Jane"]
})).unwrap()
});
group.get("/posts", || async {
Response::json(serde_json::json!({
"posts": []
})).unwrap()
});
});
use rustisan_core::{Request, Response, Result};
pub struct UserController;
impl UserController {
pub async fn index(&self) -> Result<Response> {
Response::json(serde_json::json!({
"users": [
{"id": 1, "name": "John"},
{"id": 2, "name": "Jane"}
]
}))
}
pub async fn show(&self, id: u32) -> Result<Response> {
Response::json(serde_json::json!({
"user": {"id": id, "name": "User Name"}
}))
}
}
If you're coming from Laravel, Rustisan will feel immediately familiar:
| Laravel | Rustisan |
|---|---|
Route::get('/', function() { ... }) |
router.get("/", || async { ... }) |
Route::group(['prefix' => 'api'], function() { ... }) |
router.group("/api", |group| { ... }) |
class UserController { ... } |
struct UserController { ... } |
config('app.name') |
config.app_name |
If you're a Rust developer looking for a web framework:
Rustisan applications are fast by default:
We welcome contributions! Please see our Contributing Guide for details.
Rustisan is open-sourced software licensed under the MIT license.