Fabrix is a strongly typed modern web application framework for Node.js or even Browsers. It builds on the pedigree of Rails and Grails to accelerate development by adhering to a straightforward, convention-based, API-driven design philosophy.
Note: Because Fabrix is lightweight and easily extendable, it's also very very fast and well suited for function based environments.
Note: The CLI is under construction, search for example apps in the meantime
Install the Fabrix CLI. This will help you generate a Fabrix app and more.
$ npm install @fabrix/fab-cli -g
$ fab app <new_app_name>
Fabrix uses a CLI to generate scaffolding for new applications, and to create resources inside the application.
$ fab --help
Usage:
fab
Generators:
Create New App
fab app <app-name>
Create New Model
fab model <model-name>
Create New Controller
fab controller <controller-name>
Create New Policy
fab policy <policy-name>
Create New Service
fab service <service-name>
Create New Spool
fab spool <spool-name>
Once installation is complete, begin weaving!
$ npm run compile && node dist/server.js
or simply
$ npm start
Fabrix is really focused on bringing great libraries together in congruent ways. So if you have something like a web scrapping library, then it's easy to implement that as a Spool and share it with the ever growing fabrix ecosystem.
Spools extend the framework's capabilities and allow developers to leverage existing ecosystem tools through a simple and well-defined API. New features, behavior, APIs, and other functionality can be added to the Fabrix framework through Spools.
Many Fabrix installations will include some of the following Spools:
- Windows, Mac, and Linux
- Node 8.0 and newer
See fabrix.app/docs for complete documentation.
Coming soon!
Coming soon!
See https://github.com/fabrix-app/fabrix/wiki/FAQ
We love contributions! Please check out our Contributor's Guide for more information on how our projects are organized and how to get started.
Fabrix uses a continuous integration process and all tests must pass for Fabrix to release a new version. CircleCI releases a new version when a PR is merged into master. For local development, you can download CircleCI's local development tools and run local tests before submitting a Pull Request.
Fabrix maintains a high score of coverage tests, any Pull Request should have well written Integration and Unit tests that increase the overall coverage score.
Browser support provided by Webpack is on it's way.
webpack --config ./test-browser/webpack.config.js
Fabrix would not have been possible without the substantial work done by the Trails.js team. While Fabrix maintains a different code base and system of best practices, none of this would have been possible without the contributions from the Trails community.