Skip to content

Commit

Permalink
Merge pull request #20 from onixjs/routing-refactor
Browse files Browse the repository at this point in the history
Release 1.0.0-alpha.16
  • Loading branch information
jonathan-casarrubias committed Apr 4, 2018
2 parents aac4b9e + d18e17e commit 7d15b68
Show file tree
Hide file tree
Showing 28 changed files with 1,041 additions and 1,049 deletions.
57 changes: 39 additions & 18 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,10 +1,12 @@
OnixJS - FrameWork [![Beerpay](https://beerpay.io/onixjs/core/badge.svg?style=beer)](https://beerpay.io/onixjs/core) [![Beerpay](https://beerpay.io/onixjs/core/make-wish.svg?style=flat)](https://beerpay.io/onixjs/core?focus=wish) [![Coverage Status](https://coveralls.io/repos/github/onixjs/core/badge.svg?branch=master)](https://coveralls.io/github/onixjs/core?branch=master) [![Travis](https://img.shields.io/travis/onixjs/core.svg)](https://travis-ci.org/onixjs/core) [![npm (scoped)](https://img.shields.io/npm/v/@onixjs/core.svg)](http://npmjs.com/package/@onixjs/core)
OnixJS - Enterprise Grade FrameWork [![Beerpay](https://beerpay.io/onixjs/core/badge.svg?style=beer)](https://beerpay.io/onixjs/core)
================
[![Coverage Status](https://coveralls.io/repos/github/onixjs/core/badge.svg?branch=master)](https://coveralls.io/github/onixjs/core?branch=master) [![Travis](https://img.shields.io/travis/onixjs/core.svg)](https://travis-ci.org/onixjs/core) [![npm (scoped)](https://img.shields.io/npm/v/@onixjs/core.svg)](http://npmjs.com/package/@onixjs/core) [![Beerpay](https://beerpay.io/onixjs/core/make-wish.svg?style=flat)](https://beerpay.io/onixjs/core?focus=wish)
![alt text](https://raw.githubusercontent.com/onixjs/core/master/misc/onix-splash.png "OnixJS")


> **Disclaimer**: This framework is in active development and won't be ready for production until we reach release candidate.
- **Alpha release date**: Feb 2018
- **Estimated date for beta release**: Apr 2018
- **Estimated date for beta release**: EO Apr 2018
- **Estimated date for release candidate**: EO2Q/2018

## Installation
Expand All @@ -14,33 +16,44 @@ $ npm install --save @onixjs/core
````
## Features

The **OnixJS FrameWork** is an ***Enterprise Grade*** **Node.JS** platform that implements only **Industry Standards** and **Patterns** in order provide the best development experience possible:
The **[OnixJS] FrameWork** is an ***Enterprise Grade*** **Node.JS** platform that implements only **Industry Standards** and **Patterns** in order provide the best development experience possible:

- High-Availability
- High-Performance
- Built-in **TypeScript**
- Identity Provider (**SSO**)
- **OpenID** Authentication
- **OAuth2** Resources Authorization
- **FrameWork Agnostic SDK** *(For ES6+/TypeScript Clients)*
- Dependency Injection (**DI**)
- **Service Oriented Architecture or Monolithic Architecture**.
- Representational State Transfer API (**REST API**)
- Remote Procedure Call and Streams API (**RPC/RPCS APIs**)
- Module and Component Level LifeCycles (**Hooks**)
- Back-end compatible with any **ORM** *(LoopBack's Datasource Juggler, Mongoose, Sequelize, TypeORM, Etc)*
- Built-in *TypeScript*
- Single Sign On (*[OIDC] IdP / SSO*)
- Isomorphic [SDK] (*For ES6+/TypeScript Clients that runs on Browser, Mobile, Node.JS*)
- Dependency Injection (*DI*)
- Middleware Router
- Compatibility with middleware based modules (e.g. express/bodyparser)
- View Renderer Compatible with any JS (Template Engine (*DoT, EJS, Etc*)
- *Monolithic SOA, MSA or Hybrid Architecture*.
- Representational State Transfer API (*REST API*)
- Remote Procedure Call and Streams API (*RPC/RPCS APIs*)
- Module and Component Level LifeCycles (*Hooks*)
- Back-end compatible with any *ORM* (*LoopBack's Datasource Juggler, Mongoose, Sequelize, TypeORM, Etc*)

## Documentation
The following link will take you to the [OnixJS Documentation](https://github.com/onixjs/core/wiki)

`DISCLAIMER: The wiki is a temporal documentation created to start guiding developers into the OnixJS World. An Official Web and More Complete Documentation Sites are currently being developed.`
`DISCLAIMER: The wiki is a temporal documentation created to start guiding developers into the [OnixJS] World. An Official Web and More Complete Documentation Sites are currently being developed.`

**Examples:** [https://github.com/onixjs/examples](https://github.com/onixjs/examples)

## Philosophy
The OnixJS philosophy is to empower developers to decide which dependencies they want to install and maintain in their projects.
The **[OnixJS] FrameWork** is an ***Enterprise Grade*** **Node.JS** platform that implements only **Industry Standards** and **Patterns**.

**Core Objectives**

We strongly believe that staging or deploying your project, now or in a year... MUST NOT be affected by the framework or any of its dependencies, and that is the reason of why we decided to use practically zero dependencies.

All of this while providing with cool and modern features and mechanisms to build a better communicated, scalable and highly-available product.
- **Slightly Opinionated**: Though [OnixJS] provide with a business logic structure based on *SOA*, *MSA* and it does specify how to communicate your services or clients, *we do empower you* to decide which *Front-End Framework*, *ORM* or even an *Server Side Renderer* (Template Engine) to install. By using any of our provided [Factories], you'll be free to make most of the important decisions.
- **Stability**: We strongly believe that providing a highly featured, tested or covered framework is great but not enough. We also believe that staging or deploying a project now or in a year MUSTN'T be affected by the framework or any of its dependencies, being that the reason of why we decided to use the lowest amount of dependencies in the industry (**[2 Loupe Selected Deps](https://github.com/onixjs/core/blob/master/package.json)**).
- **High-Availability**: Either you choose Monolithic *SOA* or *MSA*, your services will run independently in separated processes. While implementing the right patterns and infrastructure, any failure on either of your services won't block or disable access to users or other services.
- **High-Performance**: [OnixJS] provides with a really small footprint, we don't really add unnecessary and unused features, instead we provide you with artifacts all based on established design patterns for you to build projects with ease, as well as providing ways to flawlessly communicate services and clients.
- **Security**: [OnixJS] provides with a fully [OIDC] featured *Single Sign On* IdP, so you can start avoiding expenses on authentication and authorization issues due far simplistic auth implementations not suited for enterprise grade projects.
- **Compatibility**: A must have goal is to provide not only compatibility with other Middleware Based Node.JS Frameworks, but as described before; compatibility with any ORM, Template Engine, Front-End Framework and even other Programming Languages using the REST API or the OnixJS REST Gateway.
- **Communication**: With the [OnixJS] [Isomorphic] [SDK] you'll be able to easily communicate services to services or services to clients. *Don't want to communicate services over network? No problem, communicate services using STD IO Streams.*


## Core Documentation

Expand Down Expand Up @@ -68,3 +81,11 @@ $ npm install && npm run test
<!-- ALL-CONTRIBUTORS-LIST:END -->

This project follows the [all-contributors](https://github.com/kentcdodds/all-contributors) specification. Contributions of any kind welcome!


[OnixJS]: http://onixjs.io
[Factories]: https://en.wikipedia.org/wiki/Factory_method_pattern
[Factory Methid]: https://en.wikipedia.org/wiki/Factory_method_pattern
[OIDC]: http://openid.net/connect/
[Isomorphic]: https://en.wikipedia.org/wiki/Isomorphic_JavaScript
[SDK]: https://github.com/onixjs/sdk
4 changes: 3 additions & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@onixjs/core",
"version": "1.0.0-alpha.15",
"version": "1.0.0-alpha.16",
"description": "The High-Performance SOA Real-Time Framework for Node.JS",
"main": "dist/src/index.js",
"scripts": {
Expand Down Expand Up @@ -50,12 +50,14 @@
"dependencies": {
"@onixjs/sdk": "^1.0.0-alpha.4.4",
"reflect-metadata": "^0.1.12",
"router": "^1.3.2",
"uws": "^9.14.0"
},
"devDependencies": {
"@types/mongodb": "^3.0.5",
"@types/mongoose": "^5.0.2",
"@types/node": "^9.4.6",
"@types/send": "^0.14.4",
"@types/uws": "^0.13.1",
"ava": "^0.25.0",
"coveralls": "^3.0.0",
Expand Down
Loading

0 comments on commit 7d15b68

Please sign in to comment.