| Crates.io | hexstack |
| lib.rs | hexstack |
| version | 0.4.4 |
| created_at | 2025-08-16 22:15:46.854656+00 |
| updated_at | 2025-09-20 19:46:13.727678+00 |
| description | Hex Stack - A simple stack to create modern backend applications that are fast and have the best in class developer experience. |
| homepage | |
| repository | https://github.com/guru901/hexstack |
| max_upload_size | |
| id | 1798947 |
| size | 91,658 |
Please star the repo if you like it, so that I know someone is using it.
HexStack is a complete, modern web framework for Rust that combines the familiar developer experience of Express.js, WS and Drizzle with the performance and safety of Rust. HexStack brings together three powerful libraries to create a unified full-stack development experience:
🚀 Unmatched Performance
💡 Superior Developer Experience
⚡ Modern Architecture

HexStack is designed to be the Rails/Laravel of the Rust ecosystem - a complete, opinionated framework that provides everything you need to build modern web applications. With its CLI tool, you can scaffold new projects in seconds and start building immediately.
hexstack newInstall HexStack CLI globally:
cargo install hexstack
Or add individual components to an existing project:
cargo add ripress --features with-wynd
cargo add wynd --features with-ripress
cargo add tokio --features macros,rt-multi-thread
# Full-stack HTTP + WebSocket application
hexstack new my-app --template full
# HTTP-only application
hexstack new my-api --template http
# WebSocket-only application
hexstack new my-ws --template websocket
http - Ripress HTTP server onlywebsocket - Wynd WebSocket server onlyfull - Ripress + Wynd integrated server (default)use ripress::{app::App, types::RouterFns};
use wynd::wynd::{Wynd, WithRipress};
#[tokio::main]
async fn main() {
let mut wynd: Wynd<WithRipress> = Wynd::new();
let mut app = App::new();
// WebSocket handling
wynd.on_connection(|conn| async move {
conn.on_text(|event, handle| async move {
let _ = handle.send_text(&format!("Echo: {}", event.data)).await;
});
});
// HTTP routes
app.get("/", |_, res| async move {
res.ok().text("Welcome to HexStack!")
});
app.get("/api/health", |_, res| async move {
res.ok().json(json!({"status": "healthy"}))
});
// Mount WebSocket
app.use_wynd("/ws", wynd.handler());
app.listen(3000, || {
println!("🚀 HexStack server running on http://localhost:3000");
println!("📡 WebSocket available at ws://localhost:3000/ws");
})
.await;
}
use ripress::{app::App, types::RouterFns};
#[tokio::main]
async fn main() {
let mut app = App::new();
app.get("/", |_, res| async move {
res.ok().json(json!({"message": "Hello from HexStack!"}))
});
app.use_cors(None)
.use_rate_limiter(None);
app.listen(3000, || {
println!("🚀 HexStack API running on http://localhost:3000");
})
.await;
}
use wynd::wynd::{Wynd, Standalone};
#[tokio::main]
async fn main() {
let mut wynd: Wynd<Standalone> = Wynd::new();
wynd.on_connection(|conn| async move {
println!("Client connected");
conn.on_text(|event, handle| async move {
println!("Received: {}", event.data);
let _ = handle.send_text("Message received!").await;
});
conn.on_binary(|event, handle| async move {
let _ = handle.send_binary(event.data.clone()).await;
});
});
wynd.listen(3000, || {
println!("📡 WebSocket server running on ws://localhost:3000");
})
.await
.unwrap();
}
View more examples in the Examples directory.
Ready to build something amazing? Get started in 30 seconds:
# Install HexStack CLI
cargo install hexstack
# Create a new full-stack app
hexstack new my-app
# Navigate and run
cd my-app
cargo run
Your server will be running on http://localhost:3000 with WebSocket support at ws://localhost:3000/ws.
HexStack is built on top of these powerful libraries:
HexStack delivers exceptional performance across the stack:
We don't take contributions yet, but your feedback is always welcome! If you have any questions or suggestions, feel free to reach out to us on X.
This project is licensed under the MIT License - see the LICENSE file for details.
HexStack v0.3.0 - The Future of Rust Web Development ⚡