Skip to content

aim_server ​

A lightweight, modular web framework for Dart.

Features ​

  • Context API - Intuitive request/response handling inspired by Hono
  • Routing - Path parameters, wildcards, and method-based routing
  • Middleware - Composable middleware chain with early response support
  • Type-Safe - Custom Variables classes for type-safe context variables
  • Validation - Declare a request's shape once and read it back with static types, no code generation
  • Modular - Use only the middleware packages you need
  • Runs anywhere - The same app runs on the Dart VM (aim_server), on Cloudflare Workers (aim_workers), on Supabase Edge Functions (aim_deno), and, experimentally, on Cloud Functions for Firebase (aim_functions)

Quick Start ​

Installation ​

bash
dart pub add aim_server

Hello World ​

dart
import 'dart:io';
import 'package:aim_server/aim_server.dart';

void main() async {
  final app = Aim();

  app.get('/', (c) async {
    return c.json({'message': 'Hello, Aim!'});
  });

  await app.serve(host: InternetAddress.anyIPv4, port: 8080);
  print('Server running on http://localhost:8080');
}

With Middleware ​

dart
import 'dart:io';
import 'package:aim_server/aim_server.dart';
import 'package:aim_server_cors/aim_server_cors.dart';
import 'package:aim_server_logger/aim_server_logger.dart';

void main() async {
  final app = Aim();

  // Add middleware
  app.use(logger());
  app.use(cors());

  // Routes
  app.get('/users', (c) async {
    return c.json({'users': []});
  });

  app.post('/users', (c) async {
    final body = await c.req.json();
    return c.json({'created': body}, statusCode: 201);
  });

  await app.serve(host: InternetAddress.anyIPv4, port: 8080);
}

Middleware Packages ​

PackageDescription
aim_server_corsCORS support
aim_server_cookieCookie management
aim_server_formForm data parsing
aim_server_multipartFile uploads
aim_server_staticStatic file serving
aim_server_loggerRequest logging
aim_server_sseServer-Sent Events
aim_server_jwtJWT authentication
aim_server_basic_authBasic authentication
aim_server_testingTest utilities

Next Steps ​

Released under the MIT License.