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
Generate A New Fabrix App
$ fab app <new_app_name>
Fabrix uses a CLI to generate scaffolding for new applications, and to create resources inside the application.
$ fab --helpUsage:fabGenerators:Create New Appfab app <app-name>Create New Modelfab model <model-name>Create New Controllerfab controller <controller-name>Create New Policyfab policy <policy-name>Create New Servicefab service <service-name>Create New Spoolfab spool <spool-name>
Once installation is complete, begin weaving!
$ npm run compile && node dist/server.js
Sew on and Sew Forth!
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.
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.