The Protevus Platform: Unified Full-Stack Development https://protevus.com
Find a file
2023-05-20 23:40:23 +00:00
.devcontainer Added development instructions 2023-05-20 23:40:23 +00:00
.github Updated to Dart 3 2023-05-20 15:37:23 +00:00
.vscode Added database connection retry 2022-07-11 14:15:02 +08:00
archived_packages Compressed archived packages 2022-11-18 21:43:50 +08:00
doc Fixed deprecated warnings 2022-09-19 00:58:28 +08:00
docker Updated DateTime to non UTC 2022-07-16 10:44:49 +08:00
experiment Updated to Dart 3 2023-05-20 15:39:47 +00:00
packages Updated to Dart 3 2023-05-20 15:39:47 +00:00
tool/archived Fixed temporal mapping 2022-07-24 12:00:10 +08:00
.gitignore Updated markdown 2022-05-29 08:31:30 +08:00
.pubignore Cleanup unused 2022-04-23 16:51:55 +08:00
AUTHORS.md Updated README 2021-05-16 16:07:47 +08:00
CHANGELOG.md Updated to Dart 3 2023-05-20 15:37:23 +00:00
CONTRIBUTING.md Updated cache 2021-06-26 18:02:41 +08:00
LICENSE Updated linter to package:lints 2021-09-25 14:32:32 +08:00
logo.png Updated logo 2021-05-16 17:41:31 +08:00
logo3.png Updated logo 2021-05-16 17:41:31 +08:00
logo3.xcf Updated logo 2021-05-16 17:41:31 +08:00
melos.yaml Updated melos 2022-03-20 08:38:59 +08:00
melos_angel3.iml Added melos 2022-03-19 09:37:28 +08:00
pubspec.yaml chore: added workspace level pubspec.yaml file, required for melos 3.0 2023-03-21 19:05:19 +01:00
README.md Added development instructions 2023-05-20 23:40:23 +00:00
TODO.md Updated pubspec 2022-08-29 01:51:56 +08:00

Angel3 Framework

Angel3 Framework

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

A polished, production-ready backend framework in Dart.


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 Web 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 the same language, Dart, with null safety. 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:

  • Server-Side Rendering (Markdown, Mustache, Jinja, JAEL)
  • OAuth2 Authentication
  • WebSocket
  • HTTP/2
  • HTTP Streaming
  • GraphQL
  • ORM for PostgreSQL
  • ORM for MySQL
  • MongoDB
  • 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 backward compatible
    • Refactor the code to use new language features
  • Fix and resolve reported issues
  • Performance tunning
  • Improve on existing features, unit test, user guide and examples
  • Add new features

The status of the project is as follows:

Branch: master

  • Dart version : 2.17.x or later.
  • Publish : Yes. Refer to packages with angel3_ prefix on pub.dev.
  • Null Safety : Yes
  • Status : Production
  • Notes : Use this branch for all PR submission

For more details, checkout Project Status

Next Release 8.0.0

  • Branch: feature/v8
  • Update all angel3_ packages to require dart >= 3.0.x
  • Resolve issues related to generated container
  • Improve HTTP and ORM performance
  • Improve ORM for MySQL
  • Add cache support in ORM (using Redis)

Release Notes

Release 7.0.0 (Current)

  • Updated all angel3_ packages to 7.0.0
  • Updated all angel3_ packages to require dart >= 2.17.x
  • Updated dependencies to the latest libraries
  • Updated code generator to use analyzer 5.x.x
  • Fix ORM issues

Release 6.0.0 (Previous Release)

  • Update all angel3_ packages to 6.0.0
  • Update all angel3_ packages to require dart >= 2.16.x
  • Update ORM to support MariaDB 10.2.x (stable) and MySQL 8.x (beta)
  • Update code generator to use analyzer 3.x.x
  • Update exception handling
  • Added default logger to generate standardised logging messages
  • Added melos support
  • Removed deprecated API
  • [Breaking] error for AngelHttpException is no longer mandatory

Installation and Setup

Create a new project by cloning from boilerplate templates

  1. Download and install Dart

  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.

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.

Migrating from Angel to Angel3

Check out Migrating to Angel3

Performance Benchmark

The performance benchmark can be found at

TechEmpower Framework Benchmarks Round 21

The test cases are build using standard Angel3 ORM template. The result are used for fine-tuning Angel3 framework. The following test cases will be added in the upcoming update to the benchmark.

  1. Cache
  2. Angel3 with MongoDB

Examples and Documentation

Visit the User Guide for dozens of guides and resources, including video tutorials, to get up and running as quickly as possible with Angel3 framework.

Examples and complete projects can be found here.

You can also view the Angel3 API.

Contributing

Interested in contributing to Angel3? See the contribution guide here.

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 dart pub "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, you can make a donation via paypal service.