Awesome
<p align="center"> <a href="https://rivet.gg"> <picture> <source media="(prefers-color-scheme: dark)" srcset="./.github/media/icon-text-white.svg" alt="Rivet"> <img src="./.github/media/icon-text-black.svg" alt="Rivet"> </picture> </a> </p> <p align="center"> <p align="center"><b>Run and scale realtime applications</b><br/>Rivet Actors have built-in RPC, state, and events — the easiest way to build modern applications.</p> </p> <p align="center"> <a href="/docs/philosophy/LICENSING.md"><img alt="License Apache-2.0" src="https://img.shields.io/github/license/rivet-gg/rivet?style=flat-square"></a> <a href="https://github.com/rivet-gg/rivet/graphs/commit-activity"><img alt="GitHub commit activity" src="https://img.shields.io/github/commit-activity/m/rivet-gg/rivet?style=flat-square"/></a> <img alt="GitHub Discussions" src="https://img.shields.io/github/discussions/rivet-gg/rivet?style=flat-square"> <a href="https://rivet.gg/discord"><img alt="Discord" src="https://img.shields.io/discord/822914074136018994?style=flat-square&label=discord"/></a> </p>Features
Rivet Actors
- Remote Procedure Calls: Create cross-application function calls with minimal code overhead.
- State: Automatically manage and persist your data with built-in state handling.
- Events: Manage real-time state changes using integrated pub/sub messaging.
- Scaling & Concurrency: Actors scale automatically to cover regions and process needs.
- Edge Networking: Automatically distribute your applications to global edge locations.
Learn more about actors here.
Infrastructure
- Runs globally near your users: Minimize latency with actors created in regions closest to your users.
- Scales to zero: Handle millions of connections with low latency and high-throughput writes while saving costs through instant actor sleep/wake cycles.
- Built-in monitoring: Includes monitoring out of the box.
- Supports data localization: Store data in designated locations to meet data localization compliance requirements.
- Powered by V8 isolates & Deno runtime: Faster, cheaper, and more lightweight than lambda functions & containers.
- Supports both isolates & containers: Run your code on V8 isolates or run things like Godot/Unity game servers or video encoding in containers.
- Built with technologies you can trust: Rust, FoundationDB, the Rivet workflow engine, and Rivet orchestrator make Rivet delightfully boring to use.
Use cases
- Collaborative applications
- Local-first apps
- AI agents
- Discord Activities
- Game Servers
- Chat Apps
- Yjs Sync & Storage
- Run Untrusted User Code
Quickstart
Install CLI
Install the CLI on your machine in order to create & deploy Rivet Actors.
<details> <summary><b>macOS & Linux & WSL</b></summary>curl -fsSL https://releases.rivet.gg/rivet/latest/install.sh | sh
Next, follow the setup guide.
</details> <details> <summary><b>Windows (cmd)</b></summary>powershell -Command "iwr https://releases.rivet.gg/rivet/latest/install.ps1 -useb | iex"
Next, follow the setup guide.
</details> <details> <summary><b>Windows (PowerShell)</b></summary>iwr https://releases.rivet.gg/rivet/latest/install.ps1 -useb | iex
Next, follow the setup guide.
</details> <details> <summary><b>Build from source (<code>cargo build</code>)</b></summary>git clone https://github.com/rivet-gg/rivet
cargo build --bin rivet
The executable will be available at target/debug/rivet.
Next, follow the setup guide.
</details>Single-node cluster
Run a single-node Rivet instance for developing your applications locally.
<details> <summary><b><code>docker run</code></b></summary>Start a Rivet cluster:
docker run --name rivet -v "$(pwd)/rivet-data:/data" -p 8080:8080 -p 9000:9000 -p 7080:7080 -p 7443:7443 --platform linux/amd64 rivetgg/rivet
Next, follow the setup guide.
</details> <details> <summary><b><code>docker run</code> with TCP & UDP</b></summary>Start a Rivet cluster with TCP & UDP enabled:
docker run --name rivet -v "$(pwd)/rivet-data:/data" -p 8080:8080 -p 9000:9000 -p 7080:7080 -p 7443:7443 -p 7500-7599:7500-7599 -p 7600-7699:7600-7699 --platform linux/amd64 rivetgg/rivet
Next, follow the setup guide.
</details> <details> <summary><b>Integrate in to your Docker Compose</b></summary>Integrate in to an your existing project's Docker Compose with:
services:
rivet:
image: rivetgg/rivet
platform: linux/amd64
volumes:
- rivet-data:/data
ports:
- "8080:8080"
- "9000:9000"
- "7080:7080"
- "7443:7443"
# Optional: Rivet Guard TCP & UDP
- "7500-7599:7500-7599"
# Optional: Host networking TCP & UDP
- "7600-7699:7600-7699"
volumes:
rivet-data:
Next, follow the setup guide.
</details>Developing Rivet
Compile Rivet from scratch and start a full cluster.
<details> <summary><b>Docker Compose</b></summary>Build & start the cluster with:
docker compose -f docker/dev-full/docker-compose.yml up -d
Then visit http://localhost:8080 in your browser.
</details>Self-hosting & manual deployment
Read our self-hosting documentation.
Rivet Cloud
Rivet Cloud is the fastest, most affordable, and most reliable way to deploy Rivet Actors with zero infrastructure maintenance. Get started at hub.rivet.gg.
Rivet Enterprise
Get a demo, tailored pricing to fit your needs, or have your questions answered about Rivet. Contact us here.
Documentation
-
Overview
-
Getting Started
- Initial Setup
- What Are Actors?
- Actor SDK (external)
- Client SDKs
-
Build with Rivet
-
Resources
- Configuration
- Troubleshooting
- Self-Hosting
- More
- Available Regions
- Limitations
- Advanced
- Rescheduling
- Networking
- Internals
Community & Support
- Join our Discord
- Follow us on X
- Follow us on Bluesky
- File bug reports in GitHub Issues
- Post questions & ideas in GitHub Discussions
Architecture
Core technologies
- Rust
- V8 & Deno: Actor isolate runtime
- FoundationDB: Actor state
- CockroachDB: OLTP
- ClickHouse: Developer-facing monitoring
- Valkey: Caching
- NATS: Pub/sub
- Traefik: Load balancers & tunnels
Diagram
Project layout
docker/ Docker-related files
client/ Client image
dev-full/ Full development environment setup
monolith/ Monolithic Docker setup
server/ Server image
docs/ Documentation
docs-internal/ Internal documentation
examples/ Example projects
packages/ Project packages
api/ API package
common/ Common utilities
infra/ Infrastructure-related code
services/ Service implementations
toolchain/ Toolchain-related code
resources/ Resource files
scripts/ Scripts for various tasks
sdks/ SDKs
actor/ Actor SDK
api/ API SDK
License
Apache 2.0