Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
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
- Host: GitHub
- URL: https://github.com/risevest/octonet
- Owner: risevest
- Created: 2021-08-26T14:45:47.000Z (about 3 years ago)
- Default Branch: master
- Last Pushed: 2024-07-01T17:19:45.000Z (4 months ago)
- Last Synced: 2024-07-12T01:43:53.422Z (4 months ago)
- Topics: microservices, nats, rabbitmq, toolkit, typescript, web
- Language: TypeScript
- Homepage:
- Size: 420 KB
- Stars: 3
- Watchers: 0
- Forks: 1
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
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)