PackageTrack
Sign in Get early access

angel_framework

A high-powered HTTP server with dependency injection, routing and much more.

2.1.1 angel-dart/angel_framework

What this package is like to depend on

Last release 7 years ago

no release in 18 months

Ships fairly regularly

a new release about every 5 weeks

Rarely documented

notes for 9 of 56 stable releases

Nothing withdrawn

no release was ever pulled

10 years old

194 releases · first in 2016

0 releases in the last 12 months

see the full history below

Release timeline

194 releases · Apr 2016 to Feb 2020
2017 2018 2019 2020 2021 2022 2023 2024 2025 2026
Release Pre-release

Releases

latest 60 of 194
  1. 2.1.1 05 Feb 2020
    Release notes
    • AngelHttp.uri now returns an empty Uri if the server is not listening.
    Open source →
  2. 2.1.0 22 Nov 2019
    Release notes
    • This release was originally planned to be 2.0.5, but it adds several features, and has therefore been bumped to 2.1.0.
    • Fix a new (did not appear before 2.6/2.7) type error causing compilation to fail. https://github.com/angel-dart/framework/issues/249
    Open source →
  3. 2.0.5-beta 12 Oct 2019 pre-release
    Release notes
    • Make @Expose() in Controller optional. https://github.com/angel-dart/angel/issues/107
    • Add allowHttp1 to AngelHttp2 constructors. https://github.com/angel-dart/angel/issues/108
    • Add deserializeBody and decodeBody to RequestContext. https://github.com/angel-dart/angel/issues/109
    • Add HostnameRouter, which allows for routing based on hostname. https://github.com/angel-dart/angel/issues/110
    • Default to using ThrowingReflector, instead of EmptyReflector. This will give a more descriptive error when trying to use controllers, etc. without reflection enabled.
    • mountController returns the mounted controller.
    Open source →
  4. 2.0.4 09 Jul 2019
    Release notes
    • Prepare for Dart SDK change to Stream<List<int>> that are now Stream<Uint8List>.
    • Accept any content type if accept header is missing. See this PR.
    Open source →
  5. 2.0.4+1 26 Jul 2019
    Release notes
    • Run Controller.configureRoutes before mounting @Expose routes.
    • Make Controller.configureServer always return a Future.
    Open source →
  6. 2.0.3 06 Jun 2019
    Release notes
    • Patch up a bug caused by an upstream change to Dart's stream semantics. See more: https://github.com/angel-dart/angel/issues/106#issuecomment-499564485
    Open source →
  7. 2.0.2 31 May 2019
    Release notes
    • Make ResponseContext explicitly implement StreamConsumer (though technically it already did???)
    • Split Controller.configureServer to create Controller.applyRoutes.
    Open source →
  8. 2.0.2+1 31 May 2019
    Release notes
    • Fix a bug in the implementation of Controller.applyRoutes.
    Open source →
  9. 2.0.1 02 May 2019
    Release notes
    • Tracked down a bug in Driver.runPipeline that allowed fallback handlers to run, even after the response was closed.
    • Add RequestContext.shutdownHooks.
    • Call RequestContext.close in Driver.sendResponse.
    • AngelConfigurer is now FutureOr<void>, instead of just FutureOr.
    • Use a Container.has<Stopwatch> check in Driver.sendResponse.
    • Remove unnecessary new and const.
    Open source →
  10. 2.0.0 29 Apr 2019
    Release notes
    • Angel 2! :angel: :rocket:
    Open source →
  11. 2.0.0-rc.10 28 Apr 2019 pre-release
    Release notes
    • Fix an error that prevented AngelHttp2.custom from working properly.
    • Add startSharedHttp2.
    Open source →
  12. 2.0.0-rc.9 26 Apr 2019 pre-release
    Release notes
    • Fix some bugs in the HookedService implementation that skipped the outputs of before events.
    Open source →
  13. 2.0.0-rc.8 20 Apr 2019 pre-release
    Release notes
    • Fix MapService flaw where clients could remove all records, even if allowRemoveAll were false.
    Open source →
  14. 2.0.0-rc.7 20 Apr 2019 pre-release
    Release notes
    • AnonymousService can override readData.
    • Service.map now overrides readData.
    • HookedService.readData forwards to inner.
    Open source →
  15. 2.0.0-rc.6 19 Apr 2019 pre-release
    Release notes
    • Make redirect and download methods asynchronous.
    Open source →
  16. 2.0.0-rc.5 17 Apr 2019 pre-release
    Release notes
    • Make serializer FutureOr<String> Function(Object).
    • Make ResponseContext.serialize return Future<bool>.
    Open source →
  17. 2.0.0-rc.4 17 Apr 2019 pre-release
    Release notes
    • Support resolution of asynchronous injections in controllers and ioc.
    • Inject RequestContext and ResponseContext into requests.
    Open source →
  18. 2.0.0-rc.3 11 Apr 2019 pre-release
    Release notes
    • MapService.modify was not actually modifying items.
    Open source →
  19. 2.0.0-rc.2 11 Apr 2019 pre-release
    Release notes
    Open source →
  20. 2.0.0-rc.1 11 Apr 2019 pre-release
    Release notes
    • Fix logic error that allowed content to be written to streaming responses after close was closed.
    Open source →
  21. 2.0.0-rc.0 11 Apr 2019 pre-release
    Release notes
    • Log a warning when no reflector is provided.
    • Add AngelEnvironment class.
      • Add Angel.environment.
      • Deprecated app.isProduction in favor of app.environment.isProduction.
    • Allow setting of bodyAsObject, bodyAsMap, or bodyAsList exactly once.
    • Resolve named singletons in resolveInjection.
    • Fix a bug where Service.parseId<double> would attempt to parse an int.
    • Replace as Data cast in Service.dart with a method that throws a 400 on error.
    Open source →
  22. 2.0.0-alpha.23 11 Mar 2019 pre-release
    Release notes
    • ResponseContext.render sets charset to utf8 in contentType.
    Open source →
  23. 2.0.0-alpha.22 03 Feb 2019 pre-release
    Release notes
    • Update pipeline handling mechanism, and inject a MiddlewarePipelineIterator.
      • This allows routes to know where in the resolution process they exist, at runtime.
    Open source →
  24. 2.0.0-alpha.21 03 Feb 2019 pre-release
    Release notes
    • Update for [email protected] compatibility.
    • Add readAsBytes and readAsString to UploadedFile.
    • URI-decode path components in HTTP2.
    Open source →
  25. 2.0.0-alpha.20 03 Feb 2019 pre-release
    Release notes
    • Inject the MiddlewarePipeline into requests.
    Open source →
  26. 2.0.0-alpha.19 27 Jan 2019 pre-release
    Release notes
    • parseBody checks for null content type, and throws a 400 if none was given.
    • Add ResponseContext.contentLength.
    • Update streamFile to set content length, and also to work on HEAD requests.
    Open source →
  27. 2.0.0-alpha.18 31 Dec 2018 pre-release
    Release notes
    • Upgrade http2 dependency.
    • Upgrade uuid dependency.
    • Fixed a bug that prevented body parsing from ever completing with http2.
    • Add Providers.hashCode.
    Open source →
  28. 2.0.0-alpha.17 14 Dec 2018 pre-release
    Release notes
    • Revert the migration to lumberjack for now. In the future, when it's more stable, there'll be a conversion, perhaps.
    Open source →
  29. 2.0.0-alpha.16 11 Dec 2018 pre-release
    Release notes
    • Use package:lumberjack for logging.
    Open source →
  30. 2.0.0-alpha.15 09 Dec 2018 pre-release
    Release notes
    • Remove dependency on body_parser.
    • RequestContext now exposes a Stream<List<int>> get body getter.
      • Calling RequestContext.parseBody() parses its contents.
      • Added bodyAsMap, bodyAsList, bodyAsObject, and uploadedFiles to RequestContext.
      • Removed Angel.keepRawRequestBuffers and anything that had to do with buffering request bodies.
    Open source →
  31. 2.0.0-alpha.14 13 Nov 2018 pre-release
    Release notes
    • Patch HttpResponseContext._openStream to send content-length.
    Open source →
  32. 2.0.0-alpha.13 13 Nov 2018 pre-release
    Release notes
    • Fixed a logic error in HttpResponseContext that prevented status codes from being sent.
    Open source →
  33. 2.0.0-alpha.12 13 Nov 2018 pre-release
    Release notes
    • Remove ResponseContext.sendFile.
    • Add Angel.mimeTypeResolver.
    • Fix a bug where an unknown MIME type on streamFile would return a 500.
    Open source →
  34. 2.0.0-alpha.11 11 Nov 2018 pre-release
    Release notes
    • Add readMany to Service.
    • Allow ResponseContext.redirect to take a Uri.
    • Add Angel.mountController.
    • Add Angel.findServiceOf.
    • Roll in HTTP/2. See pkg:angel_framework/http2.dart.
    Open source →
  35. 2.0.0-alpha.10 06 Nov 2018 pre-release
    Release notes
    • All calls to Service.parseId are now affixed with the <Id> argument.
    • Added uri getter to AngelHttp.
    • The default for parseQuery now wraps query parameters in Map<String, dynamic>.from. This resolves a bug in package:angel_validate.
    Open source →
  36. 2.0.0-alpha.9 22 Oct 2018 pre-release
    Release notes
    • Add Service.map.
    Open source →
  37. 2.0.0-alpha.8 22 Oct 2018 pre-release
    Release notes
    • No longer export HTTP-specific code from angel_framework.dart. An import of import 'package:angel_framework/http.dart'; will be necessary in most cases now.
    Open source →
  38. 2.0.0-alpha.7 21 Oct 2018 pre-release
    Release notes
    • Force a tigher contract on services. They now must return Data on all methods except for index, which returns a List<Data>.
    Open source →
  39. 2.0.0-alpha.6 21 Oct 2018 pre-release
    Release notes
    • Allow passing a custom Container to handleContained and co.
    Open source →
  40. 2.0.0-alpha.5 19 Oct 2018 pre-release
    Release notes
    • MapService methods now explicitly return Map<String, dynamic>.
    Open source →
  41. 2.0.0-alpha.4 12 Sep 2018 pre-release
    Release notes
    • Renamed waterfall to chain.
    • Renamed Routable.service to Routable.findService.
      • Also Routable.findHookedService.
    Open source →
  42. 2.0.0-alpha.3 11 Sep 2018 pre-release
    Release notes
    • Added <Id, Data> type parameters to Service.
    • HookedService now follows suit, and takes a third parameter, pointing to the inner service.
    • Routable.use now uses the generic parameters added to Service.
    • Added generic usage to HookedServiceListener, etc.
    • All service methods take Map<String, dynamic> as params now.
    Open source →
  43. 2.0.0-alpha.2 28 Aug 2018 pre-release
    Release notes
    • Added ResponseContext.detach.
    Open source →
  44. 2.0.0-alpha.1 21 Aug 2018 pre-release
    Release notes
    • Removed Angel.injectEncoders.
    • Added Providers.toJson.
    • Moved Providers.graphql to Providers.graphQL.
    • Angel.optimizeForProduction no longer calls preInject, as it does not need to.
    • Rename ResponseContext.enableBuffer to ResponseContext.useBuffer.
    Open source →
  45. 2.0.0-alpha 21 Aug 2018 pre-release
    Release notes
    • Removed random_string dependency.
    • Moved reflection to package:angel_container.
    • Upgraded package:file to 5.0.0.
    • ResponseContext.sendFile now uses package:file.
    • Abandon ContentType in favor of MediaType.
    • Changed view engine to use Map<String, dynamic>.
    • Remove dependency on package:json_god by default.
    • Remove dependency on package:dart2_constant.
    • Moved lib/hooks.dart into package:angel_hooks.
    • Moved TypedService into package:angel_typed_service.
    • Completely removed the AngelBase class.
    • Removed all @deprecated symbols.
    • Service.toId was renamed to Service.parseId; it also now uses its single type argument to determine how to parse a value. * In addition, this method was also made static.
    • RequestContext and ResponseContext are now generic, and take a single type argument pointing to the underlying request/response type, respectively.
    • RequestContext.io and ResponseContext.io are now permanently gone.
    • HttpRequestContextImpl and HttpResponseContextImpl were renamed to HttpRequestContext and HttpResponseContext.
    • Lazy-parsing request bodies is now the default; Angel.lazyParseBodies was replaced with Angel.eagerParseRequestBodies.
    • Angel.storeOriginalBuffer -> Angel.storeRawRequestBuffers.
    • The methods lazyBody, lazyFiles, and lazyOriginalBuffer on ResponseContext were all replaced with parseBody, parseUploadedFiles, and parseRawRequestBuffer, respectively.
    • Removed the synchronous equivalents of the above methods (body, files, and originalBuffer), as well as query.
    • Removed Angel.injections and RequestContext.injections.
    • Removed Angel.inject and RequestContext.inject.
    • Removed a dependency on package:pool, which also meant removing AngelHttp.throttle.
    • Remove the RequestMiddleware typedef; from now on, one should use ResponseContext.end exclusively to close responses.
    • waterfall will now only accept RequestHandler.
    • Routable, and all of its subclasses, now extend Router<RequestHandler>, and therefore only take routes in the form of FutureOr myFunc(RequestContext, ResponseContext res).
    • @Middleware now takes an Iterable of RequestHandlers.
    • @Expose.path now must be a String, not just any Pattern.
    • @Expose.middleware now takes Iterable<RequestHandler>, instead of just List.
    • createDynamicHandler was renamed to ioc, and is now used to run IoC-aware handlers in a type-safe manner.
    • RequestContext.params is now a Map<String, dynamic>, rather than just a Map.
    • Removed RequestContext.grab.
    • Removed RequestContext.properties.
    • Removed the defunct debug property where it still existed.
    • Routable.use now only accepts a Service.
    • Removed Angel.createZoneForRequest.
    • Removed Angel.defaultZoneCreator.
    • Added all flags to the Angel constructor, ex. Angel.eagerParseBodies.
    • Fix a bug where synchronous errors in handleRequest would not be caught.
    • AngelHttp.useZone now defaults to false.
    • ResponseContext now starts in streaming mode by default; the response buffer is opt-in, as in many cases it is unnecessary and slows down response time.
    • ResponseContext.streaming was replaced by ResponseContext.isBuffered.
    • Made LockableBytesBuilder public.
    • Removed the now-obsolete ResponseContext.willCloseItself.
    • Removed ResponseContext.dispose.
    • Removed the now-obsolete ResponseContext.end.
    • Removed the now-obsolete ResponseContext.releaseCorrespondingRequest.
    • preInject now takes a Reflector as its second argument.
    • Angel.reflector defaults to const EmptyReflector(), disabling reflection out-of-the-box.
    Open source →
  46. 1.1.5 12 Jul 2018

    Nothing published for this version

  47. 1.1.5+1 04 Aug 2018

    Nothing published for this version

  48. 1.1.4 08 Jun 2018

    Nothing published for this version

  49. 1.1.4+1 08 Jun 2018

    Nothing published for this version

  50. 1.1.4+2 10 Jun 2018

    Nothing published for this version

  51. 1.1.4+3 10 Jun 2018

    Nothing published for this version

  52. 1.1.4+4 20 Jun 2018

    Nothing published for this version

  53. 1.1.4+5 23 Jun 2018

    Nothing published for this version

  54. 1.1.4+6 23 Jun 2018

    Nothing published for this version

  55. 1.1.4+7 27 Jun 2018

    Nothing published for this version

  56. 1.1.4+9 09 Jul 2018

    Nothing published for this version

  57. 1.1.4+10 09 Jul 2018

    Nothing published for this version

  58. 1.1.4+11 09 Jul 2018

    Nothing published for this version

  59. 1.1.3 16 May 2018

    Nothing published for this version

  60. 1.1.2 30 Mar 2018

    Nothing published for this version

Every package, every release, already written down.

The archive is open and free. Watching your own project is what we are building next.

Browse the archive