Angel3 프레임워크는 확장 가능하고 강력한 Dart용 HTTP 서버 프레임워크로, 확장 가능한 백엔드 서비스를 구축하기 위해 설계되었습니다. 내장된 종속성 주입, 유연한 라우팅, 미들웨어 지원 및 다양한 Dart 생태계와의 원활한 통합을 제공합니다. REST API, 실시간 애플리케이션 및 여러 플랫폼에서 작동하는 웹 서비스를 위한 견고한 기반을 찾는 개발자에게 이상적입니다. 모듈성과 개발자 경험에 중점을 두어 깔끔한 아키텍처로 빠른 개발을 가능하게 합니다. 안드로이드, iOS, macOS, Windows, 리눅스에서 실행되며, 크로스플랫폼 백엔드 솔루션에 적합합니다.
사용 사례
RESTful API 구축
실시간 웹 애플리케이션
크로스 플랫폼 백엔드 서비스
마이크로서비스 아키텍처
인증 및 권한 부여 시스템
주요 기능
의존성 주입
고급 라우팅 시스템
미들웨어 지원
확장 가능한 플러그인 아키텍처
크로스 플랫폼 호환성
적합한 대상
백엔드 개발자
풀스택 Dart 개발자
API 중심 애플리케이션 빌더
팀 기반 백엔드 프로젝트
확장 가능한 서비스 지향 아키텍처
고려 사항
초보자를 위한 학습 곡선이 더 가파릅니다
더 큰 프레임워크에 비해 커뮤니티 자원이 제한됨
Dart의 async/await 모델에 대한 이해가 필요합니다
서버 측 Dart 애플리케이션에 가장 적합
데이터베이스 통합을 위해 추가 패키지가 필요할 수 있습니다
원본 README
연결된 소스 저장소의 README 원문 스냅샷입니다. 최신 내용은 저장소에서 확인하세요.
Angel3 Framework
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 support for PostgreSQL and MySQL
MongoDB, Sembast and RethinkDB as storage
Redis as cache
The Core Framework
The packages directory contains specialized sub-packages that act as individual plugins or modules. Depending on the needs of a project, a developer can plug in specific packages.
They can broadly be categorized as follows:
Core Framework & Request Handling
framework: The foundational package (angel3_framework). It provides the base HTTP server, request/response contexts, dependency injection container, and middleware pipelines.
route: The routing engine handling URL matching and route parameters.
container: Dependency Injection (DI) system for resolving services.
configuration: Utilities for loading configuration files (YAML, JSON, .env).
Data Modeling & Persistence (ORM)
The framework provides an extensive ORM (angel3_orm) ecosystem with generators and database drivers:
orm: Houses the main ORM library, code generator (angel_orm_generator), and SQL dialects for MySQL and PostgreSQL.
model: Base model abstractions for data entities.
serialize: Libraries to serialize/deserialize data to and from JSON using code generation (angel_serialize_generator).
mongo, rethinkdb, sembast: Specialized drivers for interacting with MongoDB, RethinkDB, and Sembast (a NoSQL local database).
Authentication & Security
auth: Core authentication abstractions and strategies (local, token-based).
auth_oauth2 & oauth2: Out-of-the-box support for OAuth2 authentication flows.
security: Security middleware (rate limiting, standard headers, etc.).
cors: Middleware to handle Cross-Origin Resource Sharing effortlessly.
Frontend & Template Rendering
Support for processing and returning HTML views to the client:
jael: The Jael template engine specifically built for Angel, capable of HTML manipulation. It is split into language servers, preprocessors, and web renderers.
mustache, jinja, markdown: Wrappers/integrations for rendering Mustache templates, Jinja templates, or parsing Markdown into HTML.
html & seo: Utilities for building out HTML responses and optimizing for search engines.
Additional Utilities and APIs
websocket: Integration for real-time bidirectional communication.
client: A client-side library designed to interface seamlessly with Angel3 backends directly from Dart/Flutter.
cache & redis: Caching interfaces with Redis integration to improve response times.
hot & production: Tooling for hot-reloading the server during development, and managing clustering/multi-threading under production loads.
test & mock_request: Testing utilities for mocking HTTP requests without spinning up a real server.
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
Release Notes (version: 9.1.0)
Updated angel3_ packages to Require Dart >= 3.13.0
Updated code geneator to use analyzer 14.x.x
Branch: master
Dart version : 3.13.0 or later.
Publish : Refer to all packages withangel3_ prefix on pub.dev.
Status : Production
Notes : Use this branch for all PR submission
What is in the pipeline?
Remove the use of Mirror
Performance optimization
Out of the box OIDC and SAML2 support
Integrated Open API 3 support
Expand ORM to support
SQL Server
Oracle DB
SQLite
Installation and Setup
(Option 1) Create a new project by cloning from boilerplate templates
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 User Guide to learn more about Angel3 framework.
Performance Testing
Refer to Angel3 Performance Test Suite for more information. It is still in early stage, but eventually will contain test cases for running load testing with Locust on various key features of Angel3 framework. These test cases can serve as a foundation for building performance tests for any applications developed with Angel3 framework.
The test cases are build using standard Angel3 ORM template for PostgreSQL and MySQL databases. The result are used for improving Angel3 framework with respect to other frameworks. The following test cases will be added in the subsequent update to this benchmark.
Cache with Redis
Angel3 with MongoDB
Documentation
Refer to User Guide for more detailed information on the available features of Angel3 framework.
Examples
Take various applications at Examples for a spin to get a feel of what Angel3 framework can do.
We offer professional paid support for teams and developers using Angel3 framework. Our support services are designed to help you build faster, deploy with confidence, and scale reliably, whether you’re just getting started or running the framework in production. The fund collected will go into continued improvements of the framework.
What we can help with
Architecture and best-practice guidance
Framework setup, configuration, and upgrades
Debugging runtime, performance, or build issues
Production readiness (scaling, monitoring, deployment)
Code reviews and design feedback
Custom feature guidance and extensions
Who this is for
Teams using or planning to use Angel3 in production
Developers who want expert guidance from people who maintain the framework
Migration from other dart or none dart framework
Support options
We offer flexible plans depending on your needs:
Hourly support for one-off issues
Monthly retainers for ongoing help
Consulting sessions for architecture and planning
Support is available via email, chat, and scheduled calls.
Why paid support?
Paid support ensures you get reliable, professional assistance when it matters most.
Get in touch
If you’re interested in paid support, contact us at [dukefirehawk.apps@gmail.com] with your contact and use cases. We will get back within 24 hours.