.idea | ||
bin | ||
config | ||
lib | ||
logs | ||
test | ||
tool | ||
views | ||
web | ||
.gitignore | ||
LICENSE | ||
pubspec.yaml | ||
README.md |
Angel
An easily-extensible web server framework in Dart.
About
I come from Node development, usually with Express and FeathersJS. When I started learning Dart, I fell in love with it and the huge potential it has on the client-side. But I did feel that server-side was lacking.
The goal of Angel is to present a server environment navigable to JavaScript pilgrims, but also powerful enough to build robust JSON API's in little time. Another focus is to make Angel extremely extensible, and thus most of the most common business logic is shipped as its own separate Angel plugin.
In my opinion, it makes no sense that today's frontend tools have no real sense of integration with backend tools, at least in JavaScript, where there are a trillion of each. With the right server framework in Dart, we can build full-stack apps that breathe and function as one single body, rather than as two segregated, monolithic units.
Thus, the third, and perhaps most important goal of the Angel framework is to be isomorphic. Angel is designed from the ground up to share code across the server and client. The client libraries even expose an identical API to the server implementation. Creating a full-stack app should be a streamlined experience, and this is virtually impossible without shared code.
Angel also prioritizes tooling. The app boilerplate is pre-fitted with all the plugins and configuration you need to launch an MVP in a matter of days. There is also Swagger code generator in the works. The rest is just implementation detail for you. No need to worry about the following:
- Mustache
- MongoDB
- Seeding
- Angular2 Client
- Static File Server
- Load Balancing
- Authentication
- REST and WebSockets (client and server)
- Server daemon
- Command-line code generators
- Diagnostics and Logging
- Configuration (client and server)
It's all taken care of for you.
Tally ho!
Development
The base of Angel is just about done, but it still needs more unit tests before it is ready for production.
If you'd like to contribute, feel free to read the docs (as well as though generated by dartdoc), and then clone the repo. I plan to eventually integrate Angel with Travis, so we can merge pull requests faster.
Thanks for using Angel
Thank you for using this library. I hope you like it. I have put months of effort into Angel.
Feel free to follow me on Twitter: @thosakwe
Or, check out my blog