5.9 KiB
Angel3 Framework
A polished, production-ready backend framework in Dart.
About
Angel3 started life as a fork of the archived Angel framework
to support null-safety in Dart SDK 2.12.x and beyond. 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. One of the main goal is to enable developers to build both frontend and backend in the same language, Dart. Angel3 framework 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 framework. Visit our website for more details.
The available features in Angel3 includes:
- Basic and OAuth2 Authentication
- ORM for PostgreSQL and MySQL
- MongoDB
- GraphQL
- Proxy and Cache
- Static File Handling
- Server Side Rendering
- Websocket
See all the available packages
for more information.
Important Notes
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 code base 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
Release Notes
Release 8.0.0 (Upcoming)
- Updated all
angel3_
packages to 8.0.0 - Updated all
angel3_
packages to require dart >= 3.0.x
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
- Fixed ORM issues
- Fixed
dart analyze .
warnings
Installation and Setup
Create a new project by cloning from boilerplate templates
-
Download and install Dart
-
Clone one of the following starter projects:
-
Run the project in development mode (hot-reloaded is enabled on file changes).
dart --observe bin/dev.dart
-
Run the project in production mode (hot-reloaded is disabled).
dart bin/prod.dart
-
Run as docker. Edit and build the image with the provided
Dockerfile
file. -
Next, refer to the developer guide to learn more about Angel3 framework.
Create a new project with Angel3 CLI
-
Download and install Dart
-
Install the Angel3 CLI:
dart pub global activate angel3_cli
-
On terminal, create a new project:
angel3 init hello
-
Run the project in development mode (hot-reloaded is enabled on file changes).
dart --observe bin/dev.dart
-
Run the project in production mode (hot-reloaded is disabled).
dart bin/prod.dart
-
Run as docker. Edit and build the image with the provided
Dockerfile
file. -
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.
- Cached queries
- 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.
Donation & Support
If you like this project and interested in supporting its development, you can make a donation via paypal service.