Sienna Meridian Satterwhite fdba3903cc chore(release): final release commit for 0.1.0
this commit includes a whole lotta fuck yeah, a whole lotta we fuckin
got this, and a lot of "please change the future."

i hope it works.

Signed-off-by: Sienna Meridian Satterwhite <sienna@r3t.io>
2026-02-06 20:10:51 +00:00
2025-12-17 19:20:34 +00:00
2025-12-17 19:20:34 +00:00
2025-11-15 23:42:12 +00:00
2025-11-16 11:50:16 +00:00

Marathon

A peer-to-peer game engine development kit built with Rust and CRDTs

Marathon is a multiplayer game engine framework designed for building real-time collaborative games with offline-first capabilities. Built on Bevy and iroh, it provides CRDT-based state synchronization, peer-to-peer networking, and persistent state management out of the box - so you can focus on making great games instead of wrestling with networking code.

⚠️ Early Development Notice

This project is in early development (<v1.0.0).

  • The API is unstable and may change without notice
  • Breaking changes are expected between minor versions
  • Not recommended for production use
  • Documentation is still being written
  • We welcome feedback and contributions!

Version 1.0.0 will indicate the first stable release.

Features

  • CRDT-based synchronization - Conflict-free multiplayer state management using OR-Sets, RGA, and LWW semantics
  • Peer-to-peer networking - Built on iroh with QUIC transport and gossip-based message broadcasting
  • Offline-first architecture - Players can continue playing during network issues and sync when reconnected
  • Persistent game state - SQLite-backed storage with automatic entity persistence
  • Cross-platform - Supports macOS desktop and iOS (simulator and device), with more platforms planned
  • Built with Bevy - Leverages the Bevy game engine's ECS architecture and parts of its ecosystem

Demo

The current demo is a replicated cube game that synchronizes in real-time across multiple instances:

  • Apple Pencil input support on iPad
  • Real-time player cursor and selection sharing
  • Automatic game state synchronization across network partitions
  • Multiple players can interact with the same game world simultaneously

Quick Start

Prerequisites

  • Rust 2024 edition or later
  • macOS (for desktop demo)
  • Xcode (for iOS development)

Building the Desktop Demo

# Clone the repository
git clone https://github.com/yourusername/marathon.git
cd marathon

# Build and run
cargo run --package app

To run multiple instances for testing multiplayer:

# Terminal 1
cargo run --package app -- --instance 0

# Terminal 2
cargo run --package app -- --instance 1

Building for iOS

Marathon includes automated iOS build tooling via xtask:

# Build for iOS simulator
cargo xtask ios-build

# Deploy to connected device
cargo xtask ios-deploy

# Build and run on simulator
cargo xtask ios-run

See docs/ios-deployment.md for detailed iOS setup instructions.

Architecture

Marathon is organized as a Rust workspace with four crates:

  • libmarathon - Core engine library with networking, persistence, and CRDT sync
  • app - Demo game showcasing multiplayer cube gameplay
  • macros - Procedural macros for serialization
  • xtask - Build automation for iOS deployment

Key Components

  • Networking - CRDT synchronization protocol, gossip-based broadcast, entity mapping
  • Persistence - Three-tier system (in-memory → write buffer → SQLite WAL)
  • Engine - Core event loop, peer discovery, session management
  • Debug UI - egui-based debug interface for inspecting state

For detailed architecture information, see ARCHITECTURE.md.

Documentation

Technology Stack

Contributing

We welcome contributions! Please see CONTRIBUTING.md for:

  • Development environment setup
  • Code style and conventions
  • How to submit pull requests
  • Testing guidelines

Please also read our Code of Conduct and AI Usage Policy.

Project Status

Marathon is actively developed and currently focused on:

  • Core CRDT synchronization protocol
  • Persistence layer stability
  • Multi-platform support (macOS, iOS)
  • Demo applications

See our roadmap for planned features and known issues.

Community

Security

Please see our Security Policy for information on reporting vulnerabilities.

License

Marathon is licensed under the MIT License.

Acknowledgments

Marathon builds on the incredible work of:


Built with Rust 🦀 and collaborative spirit

Description
Offline-first, peer-to-peer game engine SDK in Rust
Readme 5.3 MiB
Languages
Rust 86.3%
WGSL 13.5%
Swift 0.1%