Spry
Next-generation Dart server framework. Build modern servers and deploy them to the runtime you prefer.
Quick Start
Install the package:
dart pub add spry
Create a minimal project structure:
.
├─ routes/
│ └─ index.dart
└─ spry.config.dart
spry.config.dart
import 'package:spry/config.dart';
void main() {
defineSpryConfig(
host: '127.0.0.1',
port: 4000,
target: BuildTarget.dart,
);
}
routes/index.dart
import 'package:spry/spry.dart';
Response handler(Event event) {
return Response.json({
'message': 'hello from spry',
'runtime': event.context.runtime.name,
'path': event.request.url.path,
});
}
Start the dev server:
dart run spry serve
Core Ideas
routes/defines request handlers with file routingmiddleware/and_middleware.dartshape cross-cutting request behavior_error.dartprovides scoped error handlingpublic/serves static assets directlyspry.config.dartselects the runtime target and build behavior
Runtime Targets
Spry can emit output for:
- Dart VM
- Node.js
- Bun
- Cloudflare Workers
- Vercel
Documentation
Read the v7 documentation at spry.medz.dev.
Start here:
License
Sponsors
Spry framework is an MIT licensed open source project with its ongoing development made possible entirely by the support of these awesome backers. If you'd like to join them, please consider sponsoring Seven(@medz) development.
Contributing
Thank you to all the people who already contributed to Spry!