https://github.com/industryswarm/blackrock
Blackrock Application Server
https://github.com/industryswarm/blackrock
application-server apps blackrock industryswarm
Last synced: 4 months ago
JSON representation
Blackrock Application Server
- Host: GitHub
- URL: https://github.com/industryswarm/blackrock
- Owner: Industryswarm
- License: lgpl-3.0
- Created: 2020-08-02T22:41:22.000Z (almost 5 years ago)
- Default Branch: master
- Last Pushed: 2021-02-06T01:56:06.000Z (over 4 years ago)
- Last Synced: 2023-11-03T21:40:28.003Z (over 1 year ago)
- Topics: application-server, apps, blackrock, industryswarm
- Language: JavaScript
- Homepage:
- Size: 5.49 MB
- Stars: 1
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Blackrock Application Server
######
### Introduction
Welcome to the Blackrock Application Server. Blackrock has a Reactive / Event-Driven Architecture, and contains all the functionality you need to build your next Node.JS application, whether it be a web app, web service or something else.
### Installing Blackrock
#### As a Stand-Alone Application Server
Blackrock can be installed as a stand-alone application server on your system. All you need to do is to [Install Node.JS and NPM](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm "Install Node.JS and NPM") and then open up a command-line prompt and type:
> npm install -g is-blackrock
#### As a Dependency For Your Own Application
Blackrock can be installed as a dependency within your own Node.JS application. All you need to do is to [Install Node.JS and NPM](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm "Install Node.JS and NPM"), make sure you have a new or existing Node.JS application and then open up a command-line prompt and type:
> cd /path/to/your/node.js/application
> npm install --save is-blackrock
And then open up your project in your favourite IDE and (most likely in the Javascript file you launch with) include a reference to this dependency:
const blackrock = require('is-blackrock').init();
Note: If the application isn't new (more than just a scaffold) then you have to realise the Blackrock takes over the process and instantiates its own HTTP interface (and so on). As such you may very well have to re-engineer much of your application to work with Blackrock. Also - you may need to alter the server's configuration. See {@tutorial server-configuration} for more information.
Also: the is-blackrock node module has ZERO dependencies. So your risk of losing access to any of your packages is minimised.
### Getting Started
See the [Getting Started Tutorial](https://blackrock.industryswarm.com/docs/tutorial-getting-started.html "Getting Started Tutorial") for a quick and easy guide to help you get started building with Blackrock.
### Modules Specifications
*Below you can find the specifications for each Blackrock module:*
| Module | Description |
| ----------- | ----------------------------------------------------------------------------------------------------- |
| [CLI Module](https://blackrock.industryswarm.com/docs/Server.Modules.CLI.html "CLI Specification") | Manages execution of server actions based on command-line arguments provided at startup |
| [Configure Module](https://blackrock.industryswarm.com/docs/Server.Modules.Configure.html "Configure Specification") | Provides methods and command line tools to manage server and service configuration |
| [Core Module](https://blackrock.industryswarm.com/docs/Server.Modules.Core.html "Core Specification") | Primary dependency (application server instance) that is exported to service routes and linked applications. Loads and provides access to all other modules and interfaces |
| [Daemon Module](https://blackrock.industryswarm.com/docs/Server.Modules.Daemon.html "Daemon Specification") | Provides tools to instantiate the application server as a daemon and to manage the daemon |
| [Data Module](https://blackrock.industryswarm.com/docs/Server.Modules.Data.html "Data Specification") | Provides a standard abstraction to third-party databases, and has a built-in filesystem JSON-based database that you can use to quickly build and prototype applications and services |
| [ErrorHandler Module](https://blackrock.industryswarm.com/docs/Server.Modules.ErrorHandler.html "ErrorHandler Specification") | Provides the tools to intercept and handle application server exceptions and prevent the server from crashing |
| [Farm Module](https://blackrock.industryswarm.com/docs/Server.Modules.Farm.html "Farm Specification") | Provides the tools to share state within a distributed compute cluster or farm. And to manage job processing without duplication of effort |
| [Generator Module](https://blackrock.industryswarm.com/docs/Server.Modules.Generator.html "Generator Specification") | Provides methods and command line tools to generate your own services for use within Blackrock |
| [i18n Module](https://blackrock.industryswarm.com/docs/Server.Modules.i18n.html "i18n Specification") | Provides support for internationalisation and localisation within your Blackrock services |
| [Installer Module](https://blackrock.industryswarm.com/docs/Server.Modules.Installer.html "Installer Specification") | Allows you to install additional services in to your application server from the Blackrock marketplace |
| [Jobs Module](https://blackrock.industryswarm.com/docs/Server.Modules.Jobs.html "Jobs Specification") | Allows you to create, manage and execute asynchronous jobs (from your services) - recurring and scheduled |
| [Logger Module](https://blackrock.industryswarm.com/docs/Server.Modules.Logger.html "Logger Specification") | Provides a method (log) to log your service (or intra app server) events and distribute these to any one of a number of log sinks |
| [Router Module](https://blackrock.industryswarm.com/docs/Server.Modules.Router.html "Router Specification") | Routes requests and responses between interfaces and service routes |
| [Sandbox Module](https://blackrock.industryswarm.com/docs/Server.Modules.Sandbox.html "Sandbox Specification") | Provides a sandbox environment to execute un-trusted Javascript code within your application server |
| [AppEngine Module](https://blackrock.industryswarm.com/docs/Server.Modules.AppEngine.html "AppEngine Specification") | Loads, manages and provides access to and between all apps running on your application server |
| [Universe Module](https://blackrock.industryswarm.com/docs/Server.Modules.Universe.html "Universe Specification") | Provides the Universe object to your services, giving you access to a world of real-time data. Make your service environmentally reactive! |
| [Utilities Module](https://blackrock.industryswarm.com/docs/Server.Modules.Utilities.html "Utilities Specification") | Provides a collection of popular Utility methods that you can access within the application server (modules) or from your services |
### Interface Specifications
*Below you can find the specifications for each Blackrock interface:*
| Module | Description |
| ----------- | -----------------------------------------------------------------------------------------------------|
| [Axon Interface](https://blackrock.industryswarm.com/docs/Server.Interfaces.Axon.html "Axon Specification") | Provides an interface for the Axon protocol |
| [HTTP Interface](https://blackrock.industryswarm.com/docs/Server.Interfaces.HTTP.html "HTTP Specification") | Provides an interface for the HTTP and HTTPS protocol |
| [NanoMSG Interface](https://blackrock.industryswarm.com/docs/Server.Interfaces.NanoMSG.html "NanoMSG Specification") | Provides an interface for the NanoMSG protocol |
| [SSH Interface](https://blackrock.industryswarm.com/docs/Server.Interfaces.SSH.html "SSH Specification") | Provides an interface for the SSH protocol |
| [WebSockets Interface](https://blackrock.industryswarm.com/docs/Server.Interfaces.WebSockets.html "WebSockets Specification") | Provides an interface for the WebSockets protocol |
| [ZeroMQ Interface](https://blackrock.industryswarm.com/docs/Server.Interfaces.ZeroMQ.html "ZeroMQ Specification") | Provides an interface for the ZeroMQ protocol |
### Gratitude
Thanks for downloading the Blackrock Framework. We look forward to seeing what you build with it.