diff --git a/apis/websocket/README.md b/apis/websocket/README.md index b04c21a..36d6ab6 100755 --- a/apis/websocket/README.md +++ b/apis/websocket/README.md @@ -1,73 +1,73 @@ -

- - - - -
- - - - - -     - - - - - -     - - - - - -     - - - - - -     - - - - - -     - - - - - -     - - - - - - -
-
- Continuing the legacy of Vanced -

- -# 🚙 ReVanced Bot WebSocket API - -![GPLv3 License](https://img.shields.io/badge/License-GPL%20v3-yellow.svg) - -The WebSocket API for ReVanced bots utilizing BSON for packet transmission with a heartbeating system to monitor the statuses of clients. - -## 📚 Documentation - -Documentation are provided [here](./docs/README.md). - -## 📄 License - -**ReVanced Bot WebSocket API** adopts the [GNU General Public License 3.0](./LICENSE), tl;dr: You may copy, distribute and modify the software as long as you track changes/dates in source files. Any modifications to or software including (via compiler) GPL-licensed code must also be made available under the GPL along with build & install instructions. +

+ + + + +
+ + + + + +     + + + + + +     + + + + + +     + + + + + +     + + + + + +     + + + + + +     + + + + + + +
+
+ Continuing the legacy of Vanced +

+ +# 🚙 ReVanced Bot WebSocket API + +![GPLv3 License](https://img.shields.io/badge/License-GPL%20v3-yellow.svg) + +The WebSocket API for ReVanced bots utilizing BSON for packet transmission with a heartbeating system to monitor the statuses of clients. + +## 📚 Documentation + +Documentation are provided [here](./docs/README.md). + +## 📄 License + +**ReVanced Bot WebSocket API** adopts the [GNU General Public License 3.0](./LICENSE), tl;dr: You may copy, distribute and modify the software as long as you track changes/dates in source files. Any modifications to or software including (via compiler) GPL-licensed code must also be made available under the GPL along with build & install instructions. diff --git a/apis/websocket/docs/0_development_environment.md b/apis/websocket/docs/0_development_environment.md index 5443dd8..f4cb460 100644 --- a/apis/websocket/docs/0_development_environment.md +++ b/apis/websocket/docs/0_development_environment.md @@ -1,39 +1,39 @@ -# 🏗️ Setting up the development environment - -> [!IMPORTANT] -> **This project uses [Bun](https://bun.sh) to run and bundle the code.** -> Compatibility with other runtimes (Node.js, Deno, ...) are not guaranteed and most package scripts won't work. - -To start developing, you'll need to set up the development environment first. - -1. Install [Bun](https://bun.sh) - -2. Clone the mono-repository - - ```sh - git clone https://github.com/ReVanced/revanced-helper.git && - cd revanced-helper - ``` - -3. Install dependencies - - ```sh - bun install - ``` - -4. Build packages/libraries - - ```sh - bun build:libs - ``` - -5. Change your directory to this project's root - ```sh - cd apis/websocket - ``` - -## ⏭️ What's next - -The next page will tell you about server configurations. - -Continue: [⚙️ Configuration](./1_configuration.md) +# 🏗️ Setting up the development environment + +> [!IMPORTANT] +> **This project uses [Bun](https://bun.sh) to run and bundle the code.** +> Compatibility with other runtimes (Node.js, Deno, ...) are not guaranteed and most package scripts won't work. + +To start developing, you'll need to set up the development environment first. + +1. Install [Bun](https://bun.sh) + +2. Clone the mono-repository + + ```sh + git clone https://github.com/ReVanced/revanced-helper.git && + cd revanced-helper + ``` + +3. Install dependencies + + ```sh + bun install + ``` + +4. Build packages/libraries + + ```sh + bun build:libs + ``` + +5. Change your directory to this project's root + ```sh + cd apis/websocket + ``` + +## ⏭️ What's next + +The next page will tell you about server configurations. + +Continue: [⚙️ Configuration](./1_configuration.md) diff --git a/apis/websocket/docs/1_configuration.md b/apis/websocket/docs/1_configuration.md index 1cc2d5e..76a1736 100644 --- a/apis/websocket/docs/1_configuration.md +++ b/apis/websocket/docs/1_configuration.md @@ -1,48 +1,49 @@ -# ⚙️ Configuration - -This is the default configuration: - -```json -{ - "address": "127.0.0.1", - "port": 3000, - "ocrConcurrentQueues": 1, - "clientHeartbeatInterval": 60000, - "debugLogsInProduction": false -} -``` - ---- - -### `config.address` & `config.port` - -The address and port for the server to listen on. - -### `config.ocrConcurrentQueues` - -Amount of concurrent queues that can be run at a time. - -> Setting this too high may cause performance issues. - -### `config.clientHeartbeatInterval` - -Heartbeat interval for clients. See [**💓 Heartbeating**](./packets.md#💓-heartbeating). - -### `config.consoleLogLevel` - -The level of logs to print to console. If the level is more important or equally important to set level, it will be forwarded to the console. - -The possible levels (sorted by their importance descendingly) are: -- `fatal` -- `error` -- `warn` -- `info` -- `log` -- `trace` -- `debug` - -## ⏭️ What's next - -The next page will tell you how to run and bundle the server. - -Continue: [🏃🏻‍♂️ Running the server](./2_running.md) +# ⚙️ Configuration + +This is the default configuration: + +```json +{ + "address": "127.0.0.1", + "port": 3000, + "ocrConcurrentQueues": 1, + "clientHeartbeatInterval": 60000, + "debugLogsInProduction": false +} +``` + +--- + +### `config.address` & `config.port` + +The address and port for the server to listen on. + +### `config.ocrConcurrentQueues` + +Amount of concurrent queues that can be run at a time. + +> Setting this too high may cause performance issues. + +### `config.clientHeartbeatInterval` + +Heartbeat interval for clients. See [**💓 Heartbeating**](./packets.md#💓-heartbeating). + +### `config.consoleLogLevel` + +The level of logs to print to console. If the level is more important or equally important to set level, it will be forwarded to the console. + +The possible levels (sorted by their importance descendingly) are: + +- `fatal` +- `error` +- `warn` +- `info` +- `log` +- `trace` +- `debug` + +## ⏭️ What's next + +The next page will tell you how to run and bundle the server. + +Continue: [🏃🏻‍♂️ Running the server](./2_running.md) diff --git a/apis/websocket/docs/2_running.md b/apis/websocket/docs/2_running.md index 3ffd782..0487200 100644 --- a/apis/websocket/docs/2_running.md +++ b/apis/websocket/docs/2_running.md @@ -1,41 +1,41 @@ -# 🏃🏻‍♂️ Running the server - -There are many methods to run the server. Choose one that suits best for the situation. - -> [!IMPORTANT] -> Make sure you've followed the [**🏗️ Setting up the environment**](./0_development_environment.md) steps. - -## 👷🏻 Development mode (recommended) - -There will be no compilation step, and Bun will automatically watch changes and restart the server for you. - -You can quickly start the server by running: - -```sh -bun dev -``` - -## 🌐 Production mode - -Production mode runs no different from the development server, it simply has less debugging information printed to console by default. However, more production-specific features may come. - -To start the server in production mode, you'll have to: - -1. Set the `NODE_ENV` environment variable to `production` - - > It is very possible to set the value in the `.env` file and let Bun load it, **but it is recommended to set the variable before Bun even starts**. - -2. Start the server - ```sh - bun dev - ``` - -## 📦 Building - -If you're looking to build and host the server somewhere else, you can run: - -```sh -bun bundle -``` - -The files will be placed in the `dist` directory. **Configurations and `.env` files will NOT be copied automatically.** +# 🏃🏻‍♂️ Running the server + +There are many methods to run the server. Choose one that suits best for the situation. + +> [!IMPORTANT] +> Make sure you've followed the [**🏗️ Setting up the environment**](./0_development_environment.md) steps. + +## 👷🏻 Development mode (recommended) + +There will be no compilation step, and Bun will automatically watch changes and restart the server for you. + +You can quickly start the server by running: + +```sh +bun dev +``` + +## 🌐 Production mode + +Production mode runs no different from the development server, it simply has less debugging information printed to console by default. However, more production-specific features may come. + +To start the server in production mode, you'll have to: + +1. Set the `NODE_ENV` environment variable to `production` + + > It is very possible to set the value in the `.env` file and let Bun load it, **but it is recommended to set the variable before Bun even starts**. + +2. Start the server + ```sh + bun dev + ``` + +## 📦 Building + +If you're looking to build and host the server somewhere else, you can run: + +```sh +bun bundle +``` + +The files will be placed in the `dist` directory. **Configurations and `.env` files will NOT be copied automatically.** diff --git a/apis/websocket/docs/3_packets.md b/apis/websocket/docs/3_packets.md index 96d5c7f..fe2ea75 100644 --- a/apis/websocket/docs/3_packets.md +++ b/apis/websocket/docs/3_packets.md @@ -1,33 +1,33 @@ -# 📨 Packets - -Packets are BSON messages sent to the server. They're structured like the following when decoded: - -```json -{ - "op": 12345, - "d": { - "some_field": "some data" - } -} -``` - -### `packet.op` - -Operation codes are numbers that communicate an action. - -### `packet.d` - -Data fields include additional information for the server to process. They are **either an object with specific fields or just `null`**. - -#### 📦 Schemas and constants - -Schemas for packets and their respective data[^1], and the list of possible operation codes[^2] can be found in the `@revanced/bot-shared` package, with typings as well. - -[^1]: [`@revanced/bot-shared/src/schemas/Packet.ts`](../../packages/shared/src/schemas/Packet.ts) -[^2]: [`@revanced/bot-shared/src/constants/Operation`](../../packages/shared/src/constants/Operation.ts) - -## 💓 Heartbeating - -Heartbeating is a process where the client regularly send each other signals to confirm that they are still connected and functioning. If the server doesn't receive a heartbeat from the client within a specified timeframe, it assume the client has disconnected and closes the socket. - -You can configure the interval in the configuration file. See [**📝 Configuration > `config.clientHeartbeatInterval`**](./1_configuration.md#configclientheartbeatinterval). +# 📨 Packets + +Packets are BSON messages sent to the server. They're structured like the following when decoded: + +```json +{ + "op": 12345, + "d": { + "some_field": "some data" + } +} +``` + +### `packet.op` + +Operation codes are numbers that communicate an action. + +### `packet.d` + +Data fields include additional information for the server to process. They are **either an object with specific fields or just `null`**. + +#### 📦 Schemas and constants + +Schemas for packets and their respective data[^1], and the list of possible operation codes[^2] can be found in the `@revanced/bot-shared` package, with typings as well. + +[^1]: [`@revanced/bot-shared/src/schemas/Packet.ts`](../../packages/shared/src/schemas/Packet.ts) +[^2]: [`@revanced/bot-shared/src/constants/Operation`](../../packages/shared/src/constants/Operation.ts) + +## 💓 Heartbeating + +Heartbeating is a process where the client regularly send each other signals to confirm that they are still connected and functioning. If the server doesn't receive a heartbeat from the client within a specified timeframe, it assume the client has disconnected and closes the socket. + +You can configure the interval in the configuration file. See [**📝 Configuration > `config.clientHeartbeatInterval`**](./1_configuration.md#configclientheartbeatinterval). diff --git a/apis/websocket/docs/README.md b/apis/websocket/docs/README.md index ae7573b..f14a3bb 100755 --- a/apis/websocket/docs/README.md +++ b/apis/websocket/docs/README.md @@ -1,16 +1,16 @@ -# 🚙 ReVanced Bot WebSocket API - -This documentation explains how the server works, how to start developing, and how to configure the server. - -## 📖 Table of contents - -0. [🏗️ Setting up the development environment](./0_development_environment.md) -1. [⚙️ Configuration](./1_configuration.md) -2. [🏃🏻‍♂️ Running the server](./2_running.md) -3. [📨 Packets](./3_packets.md) - -## ⏭️ Start here - -The next page will tell you how to set up the development environment. - -Continue: [🏗️ Setting up the development environment](./0_development_environment.md) +# 🚙 ReVanced Bot WebSocket API + +This documentation explains how the server works, how to start developing, and how to configure the server. + +## 📖 Table of contents + +0. [🏗️ Setting up the development environment](./0_development_environment.md) +1. [⚙️ Configuration](./1_configuration.md) +2. [🏃🏻‍♂️ Running the server](./2_running.md) +3. [📨 Packets](./3_packets.md) + +## ⏭️ Start here + +The next page will tell you how to set up the development environment. + +Continue: [🏗️ Setting up the development environment](./0_development_environment.md)