jamsocket/plane

A distributed system for running WebSocket services at scale.

Rust

2,026

349 commits

updated Jan 13, 2026

See the code

README

Docker image Build Docker Image Tests Chat on Discord crates.io

Plane is a distributed system for running stateful WebSocket backends at scale. Plane is heavily inspired by Figma’s mulitplayer infrastructure, which dynamically spawns a process for each active document.

Use cases include:

  • Scaling up authoritative multiplayer backends.
  • Running isolated code environments (like REPLs, code notebooks, and LLM agent sandboxes).
  • Data-intensive applications that need a dedicated high-RAM process for each active user session.

How Plane works

You can think of Plane as a distributed hashmap, but instead of storing data, it stores running processes. When you ask Plane for the process associated with a key (via an HTTP API), it either returns a URL to an existing process, or starts a new process and returns a URL to that.

Plane will keep the process running for as long as there is an open connection (usually a WebSocket connection) to it. Once all connections to a process have been closed for some time threshold, Plane will shut down the process.

Plane guarantees that only one process will be running for each key at any given time, allowing that process to act as an authoritative source of document state for as long as it is running.

Architecture

Read more about Plane’s architecture.

Architecture diagram of Plane

Learn more

rust
websocket

jamsocket/plane

A distributed system for running WebSocket services at scale.

Rust

2,026

349 commits

updated Jan 13, 2026

See the code

README

Docker image Build Docker Image Tests Chat on Discord crates.io

Plane is a distributed system for running stateful WebSocket backends at scale. Plane is heavily inspired by Figma’s mulitplayer infrastructure, which dynamically spawns a process for each active document.

Use cases include:

  • Scaling up authoritative multiplayer backends.
  • Running isolated code environments (like REPLs, code notebooks, and LLM agent sandboxes).
  • Data-intensive applications that need a dedicated high-RAM process for each active user session.

How Plane works

You can think of Plane as a distributed hashmap, but instead of storing data, it stores running processes. When you ask Plane for the process associated with a key (via an HTTP API), it either returns a URL to an existing process, or starts a new process and returns a URL to that.

Plane will keep the process running for as long as there is an open connection (usually a WebSocket connection) to it. Once all connections to a process have been closed for some time threshold, Plane will shut down the process.

Plane guarantees that only one process will be running for each key at any given time, allowing that process to act as an authoritative source of document state for as long as it is running.

Architecture

Read more about Plane’s architecture.

Architecture diagram of Plane

Learn more

rust
websocket

Project health

crates.io

Latest release

0.5.5 · Feb 10, 2025

Releases this year

0

Significant stargazers

(top 24 of 44)

Jakub Beránek

1,130 followers · starred Apr 2024

David Calavera

609 followers · starred May 2023

David Arnold

202 followers · starred Sep 2022

Amila Welihinda

1,468 followers · starred Sep 2022