/fabrix

Strongly Typed Modern Web Application Framework for Node.js and Browsers

Primary LanguageJavaScriptOtherNOASSERTION

Gitter NPM version Build Status Test Coverage Dependency Status Follow @FabrixApp on Twitter

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.

Getting Started

Install

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>

Start Sewing

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>

Run

Once installation is complete, begin weaving!

$ npm run compile && node dist/server.js

or simply

$ npm start

Sew on and Sew Forth!

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

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:

Compatibility

  • Windows, Mac, and Linux
  • Node 8.0 and newer

Documentation

See fabrix.app/docs for complete documentation.

More Resources

Tutorials

Coming soon!

Videos

Coming soon!

Support

FAQ

See https://github.com/fabrix-app/fabrix/wiki/FAQ

Contributing

We love contributions! Please check out our Contributor's Guide for more information on how our projects are organized and how to get started.

Development

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

Browser support provided by Webpack is on it's way.

webpack --config ./test-browser/webpack.config.js

License

MIT

Legacy

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.