这是indexloc提供的服务,不要输入任何密码
Skip to content

dart-backend/angel

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Angel3 Framework

Angel3 Framework

Pub Version (including pre-releases) Null Safety Discord License melos

A production-ready dart backend framework.


About

Angel3 originated from a fork of the archived Angel framework in support of Dart SDK 2.12.x or later. It is a full-stack backend framework in Dart that aims to streamline development by providing many common features out-of-the-box in a consistent manner. The codebase has been completely migrated and refactored to support null safety. One of the main goal is to enable developers to build both frontend and backend in dart language. Angel3 is designed as a collection of plugins that enable developers to pick and choose the parts needed for their projects. A series of starter templates are also provided for quick start and trial run with Angel3. Visit our website to learn more.

The available features in Angel3 includes:

  • OAuth2 Authentication
  • WebSocket
  • HTTP/2
  • HTTP Streaming
  • GraphQL
  • Markdown, Mustache, Jinja and JAEL as Server-Side HTML Rendering
  • ORM for PostgreSQL and MySQL
  • MongoDB, Sembast and RethinkDB as storage
  • Redis as cache

See all of the available packages for more information.

Important Notes

Angel3 packages are published under angel3_ prefix on pub.dev. These packages have passed all of their respective test suites before going live. The development work are currently focused on:

  • Keeping the packages with angel3_ prefix in sync with Dart SDK releases
    • Remove and replace deprecated classes and methods while keeping it backward compatible
    • Refactor the code to use new language features
  • Fix and resolve reported issues
  • Performance optimization
  • Improve on existing features, unit test, user guide and examples
  • Add new features

Status

Latest Release Notes (Version: 8.5.0)

  • Updated angel3_ packages to require dart >= 3.6.0
  • Updated dependencies to the latest
  • Updated code generator to use analyzer 7.x.x
  • Deprecated angel3_orm_test
  • Fixed various issues for ORM for MySQL.
  • Migrated dart:html to package:web

Latest development work

Branch: master

  • Dart version : 3.6.x or later.
  • Publish : Refer to all packages withangel3_ prefix on pub.dev.
  • Status : Production
  • Notes : Use this branch for all PR submission

For more details, checkout Project Status

Archieved development work

Starting with release 8.5.0. All subsequence releases published to pub.dev will be available on a separate branch. The branch name will adopt the following naming conventions; release/"published date" For example: release/2025_02 branch is for release on Feb 2025 to pub.dev.

What is in the pipeline?

  • Performance optimsation
  • Meet security standard compliance such as SOC 2, FIPS etc
  • Support Cloud services integration
  • Upgrade ORM to support
    • SQLite and other RDBMS
    • Multi tenant
    • ORM Reverse engineering
  • ngdart integration

Installation and Setup

(Option 1) Create a new project by cloning from boilerplate templates

  1. Download and install Dart. Minimum 3.6.0.

  2. Clone one of the following starter projects:

  3. Run the project in development mode (hot-reloaded is enabled on file changes).

    dart --observe bin/dev.dart
  4. Run the project in production mode (hot-reloaded is disabled).

    dart bin/prod.dart
  5. Run as docker. Edit and build the image with the provided Dockerfile file.

  6. Next, refer to the developer guide to learn more about Angel3 framework.

(Option 2) Create a new project with Angel3 CLI

  1. Download and install Dart

  2. Install the Angel3 CLI:

    dart pub global activate angel3_cli
  3. On terminal, create a new project:

    angel3 init hello
  4. Run the project in development mode (hot-reloaded is enabled on file changes).

    dart --observe bin/dev.dart
  5. Run the project in production mode (hot-reloaded is disabled).

    dart bin/prod.dart
  6. Run as docker. Edit and build the image with the provided Dockerfile file.

  7. Next, refer to the developer guide to learn more about Angel3 framework.

Performance Benchmark

The performance benchmark can be found at TechEmpower Framework Benchmarks

The test cases are build using standard Angel3 ORM template for PostgreSQL and MySQL databases. The result are used for fine-tuning Angel3 framework with respect to other frameworks. The following test cases will be added in the subsequent update to the benchmark.

  1. Cache with Redis
  2. Angel3 with MongoDB

Documentation

Please visit our User Guide for more detailed information on the available features of Angel3 framework.

Examples

Take various applications under Examples for a spin to get a feel of what Angel3 framework can do.

Community

Join us on Discord.

Contributing

If you are interested in contributing to Angel3 framework please check out the Contribution Guide.

Development Setup

  1. Fork angel repository

  2. Clone the project to local and create a new branch

    git clone https://github.com/<your_repo_name>/angel.git
    git checkout -b feature/<your_branch_name>
  3. Download and install Dart 3

  4. Install melos

    dart pub global activate melos
  5. Run melos exec "dart pub upgrade" to update all the packages

  6. Make changes to the packages

Donation & Support

If you like this project and interested in supporting its development work, you are welcome to make a donation via the following links.

About

A polished, production-ready backend framework in Dart for the VM, AOT, and Flutter.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 25