Danf is a Node.js full-stack isomorphic OOP framework allowing to code the same way on both client and server sides. It helps you to make deep architectures and handle asynchronous flows in order to help in producing scalable, maintainable, testable and performant applications.
You certainly can find lots of reasons but there are 2 which make the success of Node.js before all others:
Danf reinforces the promises of Node.js:
Danf is not better as any other existing framework or library but it has its own proposal. Danf is an agnostic framework: it will not force you to use sockets or this or that database or a big client library phagocyting all the others (with heavy impact on architecture, bookmarquing, security, ...). In fact, it just provides a layer to help in making strong architectures and use the power of Node.js in an easy way. You can still use all your prefered client or server libraries/packages with Danf!
Here is a fast description of its 3 layers architecture:
You can make a lot of different applications with Danf:
You can code big (and small!) performant and modular applications with a deep and strong architecture in an easy way and share your code thanks to a transparent module mechanism only requiring to use npm in the most standard way.**
The better way to create a new application/danf module (in Danf an application is a danf module and conversely) is to let Yeoman do it for you!
First, install Yeoman:
$ npm install -g yo
Then, install the specific generator for Danf applications:
$ npm install -g generator-danf
Finally, create an application using:
$ yo danf
After creating your application, you should be able to start the server in this way:
$ node danf serve
This will create a server and process client side files automatically rebuilding each time a file is changed.
At the end of this processing, a welcome message will be available at http://localhost:3080
!
Use
node danf serve --env prod
to start the server in prod environment (less debugging, more performances!).
You can run the tests of your application thanks to:
$ make test
Here is a diagram of the macro architecture of Danf:
Here is a list of the major features proposed by Danf:
Danf is stable and is already used by some applications in production.
Danf is a young framework and the community is still small but active. You can post your issues on github or on stack overflow with the tag danf
and you will get an answer as quickly as possible.
If you want to contribute, here is a not limited list of how to do:
Danf is always improving. Keep an eye on its new versions and features!
Get a quick overview of the framework architecture and possibilities.
Learn more about the framework in the documentation.
You can run the tests of the framework using:
$ make test
Open Source Initiative OSI - The MIT License
http://www.opensource.org/licenses/mit-license.php
Copyright (c) 2014-2016 Thomas Prelot
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.