modeco80 4211941560 cvmts/protocol: Make protocols stateless
Instead of creating an instance of a protocol per user and storing state there, we just have the protocol implementations take in all of the state they should need in processMessage(), and store them all globally (with some wrappers to make it easier to handle this). This makes things slightly cleaner (and probably also helps memory usage, since we now don't need to create protocol instances as soon as a user connects/swaps, and they don't need to be garbage collected since they are held in the manager.)
2025-06-15 15:03:13 -04:00
2023-09-02 17:54:44 -04:00
2024-04-11 12:04:40 -04:00
2025-04-09 16:26:37 -04:00
2025-06-05 17:08:31 -04:00

CollabVM1.ts

This is a drop-in replacement for the dying CollabVM 1.2.11. Currently in beta

Compatibility

The CollabVM server is officially supported on modern Linux distributions, using latest NodeJS LTS and Rust

We do not support running directly on Microsoft Windows. If you want to run CollabVM on Windows, we recommend using the Windows Subsystem for Linux. We will close any issues related to running the server directly on windows.

Dependencies

The CollabVM server requires the following to be installed on your server:

  1. Node.js (obviously)
  2. QEMU (Unless you just want to use a VNC Connection as your VM)
  3. A Rust toolchain (e.g: rustup)
  4. NASM assembler

Installing dependencies on Arch

  1. Install dependencies: sudo pacman --needed --noconfirm -Sy nodejs nasm rust
  2. Enable corepack: sudo corepack enable

Installing dependencies on Debian

TODO

Running

TODO: These instructions are not finished for the refactor branch.

  1. Copy config.example.toml to config.toml, and fill out fields
  2. Install dependencies: yarn
  3. Build it: yarn build
  4. Run it: yarn serve
Description
No description provided
Readme 686 KiB
Languages
TypeScript 90.2%
Rust 9.5%
JavaScript 0.3%