Skip to content

brainy-bots/arcane

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

83 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Arcane — Rust library

Multiplayer backend library: cluster management, replication, and reference server. Use this crate for your game server or backend; use arcane-client-unreal for the Unreal Engine client plugin.

New readers: for the positioning story — what Arcane is, who it's for, and how it compares to SpacetimeDB, Unreal/Unity dedicated servers, and traditional MMO backends — see WHY_ARCANE.md.

Crates

Crate Description
arcane-core Traits and shared types (no I/O).
arcane-spatial SpatialIndex — 2D grid for neighbor discovery.
arcane-rules RulesEngine — clustering decisions.
arcane-pool LocalPool — server pool implementation.
arcane-infra ClusterManager, ClusterServer, replication; binaries arcane-cluster and arcane-manager.

Build and test

cargo build
cargo test

Architecture

See docs/SYSTEM_ARCHITECTURE.md for Mermaid diagrams of the full system: component responsibilities and how data moves between clients, ClusterManager, ClusterServers, Redis, and SpacetimeDB. See docs/MODULE_INTERACTIONS.md for crate/module-level responsibilities and interaction boundaries inside the Rust workspace. See docs/WS_CHANNEL_BACKPRESSURE_VALIDATION.md for WS/channel backpressure behavior and validation notes.

Reference server

  • Manager (HTTP join): cargo run -p arcane-infra --bin arcane-manager --features manager
  • Cluster (WebSocket + Redis): cargo run -p arcane-infra --bin arcane-cluster --features cluster-ws

See arcane-demos for a full demo (backend + Unreal client and scripts).

Unreal client

The Unreal Engine client plugin lives in a separate repo: arcane-client-unreal. Add it to your project's Plugins/ folder.

Development vault

The arcane-vault/ directory is an Obsidian knowledge vault that documents how Arcane was built. It was generated from the full history of AI coding sessions (Cursor IDE + Claude Code) using an LLM-powered pipeline inspired by Karpathy's LLM-wiki approach.

Contents:

Folder What's in it
conversations/ One distilled note per coding session — summary, key decisions, problems solved, entities mentioned
entities/ Concept pages for every system, interface, and component — cross-linked with [[wikilinks]]
timeline.md Chronological narrative of the project from first spec to current state
00-INDEX.md Master navigation table
SCHEMA.md Vault conventions and how to update

Opening in Obsidian:

  1. Install Obsidian (free for local use)
  2. Open folder as vault → select arcane-vault/
  3. Open Graph view (left sidebar) to explore the concept map — 20 conversation nodes + 99 entity nodes, all interconnected

Regenerating the vault:

The vault is built by arcane-vault-builder.py in the repo root. It reads chat exports from arcane-scaling-benchmarks/ and READMEs from all Arcane repos, then calls the Anthropic API to summarize and cross-link everything.

pip install anthropic
export ANTHROPIC_API_KEY=<your-key>
python arcane-vault-builder.py            # estimate cost
python arcane-vault-builder.py --sample   # process one file (sanity check)
python arcane-vault-builder.py --confirm  # full build (~$10, ~20 min)

Intermediate results are cached in .vault-build/ (gitignored). Re-runs skip already-processed files.

License

Arcane is licensed under the GNU Affero General Public License v3.0 (AGPL-3.0). See LICENSE for the full text.

In practice:

  • You may use, modify, and distribute the software under the AGPL-3.0, including integrating it into your own AGPL-licensed projects.
  • If you embed Arcane into a server or service that users interact with over a network, AGPL requires you to make your modified source available to those users.
  • If you want to ship proprietary/closed-source software that links Arcane, contact the copyright holder for a commercial license. The AGPL obligations do not apply under a commercial agreement.

For licensing inquiries: martin.mba@gmail.com

Versioning

Releases are tagged (e.g. v0.1.0). See CHANGELOG.md.

About

Arcane — Rust library for multiplayer: cluster management, replication, reference server (arcane-core, arcane-infra, arcane-spatial, arcane-rules, arcane-pool)

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages