Ripress
An Express.js-inspired web framework for Rust
Please star the repo if you like it, so that I know someone is using it.
What is Ripress?
Ripress is an Express.js-inspired web framework for Rust that combines the familiar developer experience of Express with the performance and safety of Rust. Built on top of Hyper and Tokio, Ripress provides a simple and intuitive API for building fast, reliable web applications.
Why Choose Ripress?
🚀 Performance
- Ripress is just ~6–7% slower than Actix-Web (one of the fastest Rust web frameworks), even though performance hasn’t been the main focus yet.
- Nearly 10x faster than Express.js
💡 Developer Experience
- Express.js-familiar API that Rust developers will love
- In many cases, even simpler than Express.js
- Comprehensive error handling and type safety
⚡ Modern Foundation
- Async/await support with Tokio
- HTTP/2 support via Hyper (enabled by default, configurable via
App::enable_http2andApp::http2_config)

Table of Contents
Overview
Ripress is a web framework inspired by Express.js, designed to bring the familiar and intuitive Express.js developer experience to the Rust ecosystem while maintaining Rust's performance and safety guarantees.
Features
- Express-like routing with
AppandRouter - Async handler support built on
tokio - Pre and post middleware for request/response processing
- Built-in middleware including CORS, logging, compression, and file uploads
- Request/response objects with JSON, text, and form parsing
- Type-safe handler signatures for better developer experience
- WebSocket support via the
wyndcrate (with "with-wynd" feature) - Extensible architecture via custom middleware
Optional Features
Ripress includes several optional features that can be enabled to reduce compile time and binary size:
compression- Enables response compression middleware (gzip/deflate) usingflate2file-upload- Enables file upload middleware for handling multipart form data usinguuidlogger- Enables request/response logging middleware usingtracingwith-wynd- Enables WebSocket support via thewyndcrate
To enable features, add them to your Cargo.toml:
[]
= { = "*", = ["compression", "file-upload", "logger", "with-wynd"] }
Goals
- Provide an intuitive and simple API like Express.js
- Focus on developer experience first; performance optimizations will come later
- Prioritize ease of use over low-level control initially
- Include built-in middleware for common web development needs
Getting Started
The easiest way to get started is with the HexStack CLI.
HexStack is a project scaffolding tool (similar to create-t3-app) that lets you spin up new Rust web projects in seconds. With just a few selections, you can choose:
Backend: Ripress, Wynd, or both
Frontend: React, Svelte, or none
Extras: Out-of-the-box HTTP + WebSocket support
This means you can quickly bootstrap a full-stack project (Rust backend + modern frontend) or just a backend-only Ripress/Wynd project.
To create a new project with Ripress:
Alternatively, you can create a new project manually by running the following commands:
To enable optional features (compression, file upload, logger, WebSocket support):
This will create a new project with Ripress and all optional features enabled.
Basic Example
use ;
async
async
WebSocket Example
Note: This example requires the with-wynd feature to be enabled. See Optional Features for details.
use ;
use Wynd;
async
View more basic examples in Examples dir. View full blown code examples here.
Middleware Example
Note: This example requires the file-upload feature to be enabled. See Optional Features for details.
use ;
async
Learn more about middleware in the Middleware Guide.
Get Started
Ready to build something amazing? Jump into our Installation Guide or explore the framework on GitHub.
You can also check out the complete API documentation on Docs.rs.
Documentation
Changelog
Contributing
We welcome contributions! Please see our Contributing Guide for details.
Ripress v1.0.1 - Production Ready ✨