What is Revali?#
Revali is a modern, fast, and powerful Dart API framework that makes building robust web services effortless. It leverages annotations within your classes, methods, and method parameters to automatically generate API code, allowing developers to focus on writing clean, maintainable business logic while Revali handles the boilerplate.
Key Features#
- Type-Safe: Built on Dart's strong typing system for compile-time safety
- Annotation-Driven: Define APIs using simple, intuitive annotations
- Highly Extendable: Create custom constructs or use community packages
- Rapid Development: Minimal setup and configuration required
- Hot Reload: Instant development feedback with hot reload support
- Production-Ready: Health probes, graceful shutdown, request tracing and worker isolates come with the framework
More Than One Service#
A system split across several services is several servers to run, wire together and deploy. Revali treats them as one system:
-
Messaging — consume queue messages with
@Consumes, backed by a broker you deploy -
revali up— run every service in the repository at once, on one screen -
revali compose— adocker-compose.yamlfor the same set - Error Responses — structured errors that survive a service-to-service call
How does it work?#
Revali analyzes your Dart classes, methods, and annotations to generate your server code — built in, no extra package needed. Beyond the server, Revali's capabilities can be extended with "constructs": standalone Dart packages that are imported into your project, automatically detected by Revali, and used to generate additional code (client SDKs, OpenAPI docs, Docker deployment, or your own).
graph LR
A[Your Dart Code] --> B[Revali Analysis]
B --> C[Constructs]
C --> D[Generated Code]
D --> E[Running Server]
F[Community Constructs] --> C
G[Custom Constructs] --> C
Quick Start#
Ready to build your first API? Get started in minutes:
- Install Revali - Add Revali to your project
- Create Your First Endpoint - Build a simple API endpoint
- Run the Server - See your API in action