angel_framework 1.0.10 (latest: 1.0.10 / 1.1.0-alpha+6 )


Pub build status

A high-powered HTTP server with support for dependency injection, sophisticated routing and more.

This is the core of the Angel framework. To build real-world applications, please see the homepage.

import 'package:angel_framework/angel_framework.dart';

main() async {
  var app = new Angel();

    ..get('/hello', (req, res) {
    })'/date', () => new;

  await app.startServer();


  • Closed #162, fixing a caching bug that would cause multiple requests to the same URL to fail.
  • Resolved dependency injection of primitives (namely String), no longer triggering errors about String has no constructor, etc.


  • Closed #161. addCreated/addUpdatedAt no longer crash when serialize is false.
  • Added an explicit on charcode, path, and others. Resolves #160.
  • ResponseContext now implements StreamSink<List<int>, so data can be streamed directly to the underlying response.
  • You can now inject encoders into a ResponseContext, which takes care of Accept-Encoding. This will ultimately replace package:angel_compress. Resolves #159.


  • Changed req.query to use a modifiable Map if the body has not parsed. Resolves #157.
  • Changed all constants to camelCase, and deprecated their CONSTANT_CASE counterparts. Resolves #155.
  • Resolved #156 by adding a graphql provider.
  • Added an analysis-options.yaml enabling strong mode. Preparing for Dart 2.0.
  • Added a dependency on package:meta, resolving #154, and added corresponding annotations to make extending Angel easier.
  • Resolved #158 by using proper StreamController patterns, to prevent memory leaks.
  • Route handler sequences are now cached in a Map, so repeat requests will be resolved faster.
  • A message is no longer printed in production mode.
  • Removed the inheritance on Extensible in many classes, and removed it from angel_route. Now, only Angel and RequestContext have @proxy annotations.
  • Deprecated passing debug to Angel.
  • _LockableBytesBuilder now uses Uint8List.
  • Removed reopen from ResponseContext.


Changed ResponseContext.serialize. The contentType is now set before serialization.


Moved the Model class into package:angel_model. No functionality was added or removed.


Added an accepts method to RequestContext. It's now a lot easier to tell which content types the user accepts via the Accept header.

1. Depend on it

Add this to your package's pubspec.yaml file:

  angel_framework: "^1.0.10"

2. Install it

You can install packages from the command line:

$ pub get

Alternatively, your editor might support 'pub get'. Check the docs for your editor to learn more.

3. Import it

Now in your Dart code, you can use:

import 'package:angel_framework/angel_framework.dart';




A high-powered HTTP server with DI, routing and more.


Email Tobe O





Aug 28, 2017