Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/risevest/octonet

Web Services toolkit
https://github.com/risevest/octonet

microservices nats rabbitmq toolkit typescript web

Last synced: 3 months ago
JSON representation

Web Services toolkit

Awesome Lists containing this project

README

        

# Octonet

![Github Actions](https://github.com/risevest/octonet/actions/workflows/build-test.yml/badge.svg)
[![code style: prettier](https://img.shields.io/badge/code_style-prettier-ff69b4.svg?style=flat-square)](https://github.com/prettier/prettier)

## About

octonet is a library that provides utility functions for building microservices such as:

- Interservice communication (via REST)
- Subscribing to events from RabbitMQ queues and NATS servers.
- Logging
- Authentication

## Getting Started

These instructions will get you a copy of the project up and running on your local machine for development purposes.

### Prerequisites

The following are required for the best use of Octonet:

- Package Dependencies
- NodeJs (v14 or higher)
- Yarn
- Typescript (v4.4 or higher)
- A basic understanding of dependency injection with Inversify

### Installation

To install Octonet, run the following command in your terminal

```bash
yarn install --save @risemaxi/octonet reflect-metadata
```

To upgrade to a specific version run this command

```bash
yarn upgrade @risemaxi/octonet@version
```

To upgrade to latest version run this command

```bash
yarn upgrade @risemaxi/octonet --latest
```

> Note: Octonet requires Typescript (>= v4.4), as well as the `Decorator` experimental feature. Therefore, the following config options should be present in your `tsconfig.json` file:

```json
{
"compilerOptions": {
"target": "ES2017",
"lib": ["es2017", "esnext.asynciterable", "dom"],
"types": ["reflect-metadata"],
"module": "commonjs",
"moduleResolution": "node",
"experimentalDecorators": true,
"emitDecoratorMetadata": true
}
}
```

## Guides

Below are links to detailed explanations to the various features of Octonet as well as practical examples:

- [HTTP (Interservice Comunication)](docs/HTTP.md)
- [NatsConsumer (subscribing to Nats topics)](docs/Consumer.md)
- [QueueManager (subscribing to RabbitMQ queues)](docs/Manager.md)
- [Authentication](docs/Authentication.md)
- [Logging](docs/Logging.md)

## References and Helpful Links

The following links would further aid the understanding of Octonet

- [Inversify](https://github.com/inversify/InversifyJS#readme)
- [Reflect Metadata](https://rbuckton.github.io/reflect-metadata/)
- [Typescript Decorators](https://www.typescriptlang.org/docs/handbook/decorators.html)
- [AMPQ Client docs for NodeJs](http://www.squaremobius.net/amqp.node/channel_api.html)
- [Bunyan](https://github.com/trentm/node-bunyan#readme)
- [Axios](https://axios-http.com/docs/intro)
- [RabbitMQ messaging queues](https://www.rabbitmq.com/)
- [NATS Messaging](https://docs.nats.io/nats-concepts/what-is-nats)