The rewyre framework is built on top of express, and express-ws and utilises TypeScript to give you a powerful wiring tool to create API applications in a very short time. The framework uses TypeScript decorators to apply controller and routing functionality and apply additional controls.
The package was originally called
aether-framework and then changed to
@rewyre/core and is now just named as
rewyre, I apologise for this, I was very conflicted with what to name it.
IMPORTANT This project has been completely re-written from ground up for the latest version 1 release, this is because the project did not have enough flexibility than what it needed when it released in alpha, therefore this is the final version of the API and structure.
You can install from NPM with:
npm install --save rewyre
Below are some demos and examples you can try out to help with your development experience and to use as a base.
The documentation is availabe here: Documentation.
rewyre-vueproject has not been updated to the latest rewyre stable release, but I plan to update that in the coming months, or you are welcome to create some pull requests instead.
Examples & Demos
Depending on what you want to get out of it, you can look at the demo for a full to-do demo, if you plan to use this for a larger application then there is a boilerplate I have created called: rewyre-vue from which the whole project has been created to support Vue 3 + Rewyre + TypeScript, You can check it out here.
The below lists the features and their stable state, this framework's API will not change for the forseable future, any changes will be fully implemented and any non-backwards compatible changes will be in the latest major version, following the semver versioning scheme.
|HTTP Server||The HTTP server is the base for the framework and is built on top of Express.||
|WebSocket Server||The WebSocket server uses
|Middleware Support||Standard Express middleware is supported using the
|Static Assets||Standard Express static is supported as well using the
|Controllers||Controller classes and the
|Controller Routes||Controller routes are and the
|Models||Model classes and the
|Injections||Injections are done using a single
|Services||Service classes and the
|Providers||Providers and the
There is some functionality left to implement including:
- Authentication Decorator - To implement an authentication decorator for out-of-the-box permissions.
- Threaded Decorator - To add support for controllers being run in a different thread, to long processes.
- Plugin Support - There is a plan to add plugin support, but I am not sure what this will look like yet.
The future for this library is big, I have many plans to add lots of new features and more decorators to add additional features, and I plan to turn this (slowly) into a full out-of-the-box TypeScript based framework for building Node.JS server side applications. This framework can handle any structure and can be included into other applications like Vue.JS Server-Side Rendering. You can use this framework for API first structure or even to use it to build a basic website, using Express routing.
While I additionally add new functionality they will go through various states, they will be developed in the
develop branch and new features will be labelled
alpha until everything has been finalised, then moved to
beta status while I test for bugs, and then
stable once the API won't change and I have removed any bugs I can find, of course if you find a bug then please, create an issue!