platform/README.md

150 lines
5.9 KiB
Markdown
Raw Normal View History

2021-06-21 04:07:48 +00:00
# Angel3 Framework
[![Angel3 Framework](./logo3.png)](https://github.com/dukefirehawk/angel)
2020-02-15 23:35:27 +00:00
2021-12-21 01:11:53 +00:00
![Pub Version (including pre-releases)](https://img.shields.io/pub/v/angel3_framework?include_prereleases)
2021-05-16 09:54:16 +00:00
[![Null Safety](https://img.shields.io/badge/null-safety-brightgreen)](https://dart.dev/null-safety)
[![Gitter](https://img.shields.io/gitter/room/nwjs/nw.js.svg)](https://gitter.im/angel_dart/discussion)
2021-05-16 08:07:47 +00:00
[![License](https://img.shields.io/github/license/dukefirehawk/angel)](https://github.com/dukefirehawk/angel/LICENSE)
2022-03-20 00:55:30 +00:00
[![melos](https://img.shields.io/badge/maintained%20with-melos-f700ff.svg?style=flat-square)](https://github.com/invertase/melos)
2020-02-15 23:35:27 +00:00
2021-05-16 08:07:47 +00:00
**A polished, production-ready backend framework in Dart with NNBD support.**
2020-02-15 23:35:27 +00:00
-----
2021-06-21 04:07:48 +00:00
2020-02-15 23:35:27 +00:00
## About
2021-06-21 04:07:48 +00:00
2022-04-24 01:42:33 +00:00
Angel3 is a fork of archived Angel framework to support 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. 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](<https://angel3-framework.web.app/>) to learn more.
2020-02-15 23:35:27 +00:00
2021-09-13 02:45:15 +00:00
The availabe features in Angel3 includes:
2021-06-21 04:07:48 +00:00
2020-02-15 23:36:29 +00:00
* Static File Handling
2021-05-16 08:07:47 +00:00
* Basic Authentication
* PostgreSQL ORM
2021-06-21 04:07:48 +00:00
* GraphQL
2020-02-15 23:36:29 +00:00
* And much more...
2021-06-21 04:07:48 +00:00
See all the available [`packages`](https://angel3-docs.dukefirehawk.com/packages) for more information.
## Important Notes
2020-02-15 23:35:27 +00:00
2021-08-20 04:59:15 +00:00
The core Angel Framework migration to Angel3 Framework has completed and published under `angel3_` prefix on pub.dev. The migrated packages have passed all the test cases. The development work will now move onto the next phase which is to refactor and to improve on the features for better development and deployment experience.
2021-03-13 02:32:48 +00:00
2021-08-20 04:59:15 +00:00
The status of the code base is as follows:
2021-03-13 02:00:29 +00:00
2021-08-20 04:59:15 +00:00
Branch: `master`
2021-06-21 04:07:48 +00:00
2022-04-24 01:42:33 +00:00
* Dart version : 2.16.x or later.
2021-08-20 04:59:15 +00:00
* Publish : Yes. Refer to packages with `angel3_` prefix on [pub.dev](https://pub.dev/publishers/dukefirehawk.com/packages).
2021-12-01 07:10:58 +00:00
* Null Safety : Yes
* Status : Production
* Notes : Use this branch for all PR submission
2021-03-13 02:00:29 +00:00
2021-05-16 08:07:47 +00:00
For more details, checkout [Project Status](https://github.com/dukefirehawk/angel/wiki/Project-Status)
2021-03-13 02:12:24 +00:00
2022-04-24 01:42:33 +00:00
## Release Notes
### Release 6.0.0
* Updated all `angel3_` packages to 6.0.0
* Updated all `angel3_` packages to use SDK 2.16.x or later
* Updated ORM to support MariaDB 10.2.x (stable) and MySQL 8.x (beta)
* Updated code generator to use `analyzer` 3.x.x
* Updated exception handling
* Added default logger to generate standardised logging messages
* Added `melos` support
* Removed deprecated API
2022-04-25 00:54:13 +00:00
* [**Breaking**] `error` for `AngelHttpException` is no longer mandatory
2022-04-24 01:42:33 +00:00
2021-06-21 04:07:48 +00:00
## Installation and Setup
2020-02-15 23:35:27 +00:00
2021-08-20 04:59:15 +00:00
### Create a new project by cloning from boilerplate templates
2021-06-21 04:07:48 +00:00
1. Download and install [Dart](https://dart.dev/get-dart)
2021-08-20 04:59:15 +00:00
2. Clone one of the following starter projects:
2022-07-24 04:00:10 +00:00
* [Basic Template](https://github.com/dukefirehawk/boilerplates/tree/angel3-basic)
* [ORM for PostgreSQL Template](https://github.com/dukefirehawk/boilerplates/tree/angel3-orm)
* [ORM for MySQL Template](https://github.com/dukefirehawk/boilerplates/tree/angel3-orm-mysql)
2021-06-21 04:07:48 +00:00
* [Angel3 Graphql Template](https://github.com/dukefirehawk/boilerplates/tree/angel3-graphql)
2021-05-16 10:46:58 +00:00
2021-08-20 04:59:15 +00:00
3. Run the project in development mode (*hot-reloaded* is enabled on file changes).
```bash
dart --observe bin/dev.dart
```
4. Run the project in production mode (*hot-reloaded* is disabled).
```bash
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](https://angel3-docs.dukefirehawk.com/) to learn more about Angel3 framework.
### Create a new project with Angel3 CLI
1. Download and install [Dart](https://dart.dev/get-dart)
2. Install the [Angel3 CLI](https://pub.dev/packages/angel3_cli):
```bash
dart pub global activate angel3_cli
```
3. On terminal, create a new project:
2021-06-21 04:07:48 +00:00
2021-08-20 04:59:15 +00:00
```bash
angel3 init hello
```
2020-02-15 23:35:27 +00:00
2021-08-20 04:59:15 +00:00
4. Run the project in development mode (*hot-reloaded* is enabled on file changes).
2020-02-15 23:35:27 +00:00
2021-08-20 04:59:15 +00:00
```bash
dart --observe bin/dev.dart
```
2020-02-15 23:35:27 +00:00
2021-08-20 04:59:15 +00:00
5. Run the project in production mode (*hot-reloaded* is disabled).
2020-02-15 23:35:27 +00:00
2021-08-20 04:59:15 +00:00
```bash
dart bin/prod.dart
```
2020-02-15 23:35:27 +00:00
2021-08-20 04:59:15 +00:00
6. Run as docker. Edit and build the image with the provided `Dockerfile` file.
2020-02-15 23:35:27 +00:00
2021-08-20 04:59:15 +00:00
7. Next, refer to the [developer guide](https://angel3-docs.dukefirehawk.com/) to learn more about Angel3 framework.
2020-02-15 23:35:27 +00:00
2021-08-20 04:59:15 +00:00
### Migrating from Angel to Angel3
2021-03-13 03:00:04 +00:00
2021-06-21 04:07:48 +00:00
Check out [Migrating to Angel3](https://angel3-docs.dukefirehawk.com/migration/angel-2.x.x-to-angel3/migration-guide-3)
2021-05-16 08:07:47 +00:00
2021-12-21 01:11:53 +00:00
## Performance Benchmark
The performance benchmark can be found at
2022-07-24 04:00:10 +00:00
[TechEmpower Framework Benchmarks Round 21](https://www.techempower.com/benchmarks/#section=data-r21&test=composite)
2021-12-21 01:11:53 +00:00
2022-01-08 08:16:50 +00:00
The test cases are build using standard `Angel3 ORM` template. This result will be used for fine-tuning Angel3 framework. The following test cases will be progressively added in the upcoming update to benchmark.
1. Angel3 with MongoDB
2022-07-24 04:00:10 +00:00
2. Angel3 with ORM MySQL
2022-01-08 08:16:50 +00:00
3. Cached queries
2021-12-21 01:11:53 +00:00
2020-02-15 23:35:27 +00:00
## Examples and Documentation
2021-06-26 10:02:41 +00:00
Visit the [User Guide](https://angel3-docs.dukefirehawk.com/) for dozens of guides and resources, including video tutorials, to get up and running as quickly as possible with Angel3 framework.
2020-02-15 23:35:27 +00:00
2021-06-21 04:07:48 +00:00
Examples and complete projects can be found [here](https://github.com/dukefirehawk/angel3-examples).
2020-02-15 23:35:27 +00:00
2021-06-21 04:07:48 +00:00
You can also view the [Angel3 API](http://www.dartdocs.org/documentation/angel_framework/latest).
2020-02-15 23:35:27 +00:00
2020-02-15 23:36:29 +00:00
## Contributing
2021-06-21 04:07:48 +00:00
2021-06-26 10:02:41 +00:00
Interested in contributing to Angel3? See the contribution guide [here](CONTRIBUTING.md).
2022-08-13 02:14:43 +00:00
2022-08-16 11:19:04 +00:00
## Donation & Support
2022-08-13 02:14:43 +00:00
2022-08-16 11:19:04 +00:00
If you like this project and want to support its development, you can make a [donation](https://paypal.me/dukefirehawk?country.x=MY&locale.x=en_US) via paypal service.