https://github.com/risevest/octonet
Web Services toolkit
https://github.com/risevest/octonet
microservices nats rabbitmq toolkit typescript web
Last synced: 4 months ago
JSON representation
Web Services toolkit
- Host: GitHub
- URL: https://github.com/risevest/octonet
- Owner: risevest
- Created: 2021-08-26T14:45:47.000Z (almost 5 years ago)
- Default Branch: master
- Last Pushed: 2026-01-21T09:52:18.000Z (5 months ago)
- Last Synced: 2026-01-21T21:31:03.644Z (5 months ago)
- Topics: microservices, nats, rabbitmq, toolkit, typescript, web
- Language: TypeScript
- Homepage:
- Size: 436 KB
- Stars: 8
- Watchers: 0
- Forks: 2
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Octonet

[](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
- Distributed Tracing
- 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 & Tracing](docs/Logging.md)
- [Job Scheduling](docs/Jobs.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)