💡 摘要
Rivet是一个开源平台,用于构建使用Actor的有状态后端,以实现高效的内存管理和实时通信。
🎯 适合人群
🤖 AI 吐槽: “Rivet:因为谁还需要数据库,当你可以把所有东西都放在内存里?”
自述文件暗示了潜在的风险,例如由于状态持久性导致的内存溢出和对外部编排的依赖,这可能导致数据丢失。缓解措施包括实施内存限制和监控actor状态。
What is Rivet?
Rivet is an open-source platform for building stateful backends using Actors, long-lived processes that keep state in memory alongside compute. No more database round-trips for every request.
import { actor } from "rivetkit"; export const chatRoom = actor({ // In-memory, persisted state state: { messages: [] }, // Type-safe RPC actions: { sendMessage: (c, user, text) => { // High performance writes c.state.messages.push({ user, text }); // Realtime built-in c.broadcast("newMessage", { user, text }); }, }, });
Each actor is like a tiny server with its own memory. Create millions of them (one per user, per document, per game session) and they scale automatically.
How It Works
RivetKit
The TypeScript library for building actors. Works with any backend framework.
npm install rivetkit
Run standalone for development, deploy to Cloudflare Workers, or connect to Rivet Engine for scale.
Rivet Engine
High-performance Rust orchestration layer for production scale. Handles actor lifecycle, state persistence, and multi-region distribution.
- Self-host with Docker or binaries
- Or use Rivet Cloud (managed)
You don't need Rivet Engine to get started. RivetKit runs standalone for development and simpler deployments. Add Rivet Engine when you need to scale.
Features
- Stateful Compute: State lives with compute for sub-millisecond reads/writes, no database queries
- Realtime Built-In: WebSocket events without extra infrastructure
- Hibernation: Actors sleep when idle and wake instantly with no cold starts
- Infinitely Scalable: Auto-scale from zero to millions of actors
- Fault Tolerant: Automatic failover with state integrity
- Type-Safe: End-to-end TypeScript types from actor to client
- Run Anywhere: Your infrastructure, your cloud, your rules
Getting Started
One-Click Templates
- Chat Room - Realtime messaging
- AI Agent - Stateful AI conversations
- Cursors - Collaborative cursors
- Scheduling - Async processing
Start From Scratch
Deploy Anywhere
Rivet Cloud
Deploy your backend anywhere, then connect to Rivet Cloud for actor orchestration: Vercel • Railway • Kubernetes • AWS ECS • Google Cloud Run • Hetzner • VM & Bare Metal
Self-Host Rivet Engine
# Docker docker run -p 6420:6420 rivetkit/engine # macOS (Apple Silicon) curl -o rivet-engine "https://releases.rivet.dev/rivet/latest/engine/rivet-engine-aarch64-apple-darwin" && chmod +x rivet-engine && ./rivet-engine start # macOS (Intel) curl -o rivet-engine "https://releases.rivet.dev/rivet/latest/engine/rivet-engine-x86_64-apple-darwin" && chmod +x rivet-engine && ./rivet-engine start # Linux (x86) curl -o rivet-engine "https://releases.rivet.dev/rivet/latest/engine/rivet-engine-x86_64-unknown-linux-musl" && chmod +x rivet-engine && ./rivet-engine start
Integrations
Frameworks: Hono • Elysia • tRPC
Clients: JavaScript • React • Next.js
Projects in This Repository
| Project | Description | |---------|-------------| | RivetKit TypeScript | Client & server library for building actors | | RivetKit Rust | Rust client (experimental) | | RivetKit Python | Python client (experimental) | | Rivet Engine | Rust orchestration engine | | ↳ Pegboard | Actor orchestrator & networking | | ↳ Gasoline | Durable execution engine | | ↳ Guard | Traffic routing proxy | | ↳ Epoxy | Multi-region KV store (EPaxos) | | Dashboard | Inspector for debugging actors | | Website | Source for rivet.dev | | Documentation | Source for rivet.dev/docs |
Community
- Discord - Chat with the community
- X/Twitter - Follow for updates
- Bluesky - Follow for updates
- GitHub Discussions - Ask questions
- GitHub Issues - Report bugs
- Talk to an engineer - Discuss your use case
License
优点
- 通过内存状态管理实现高性能
- 通过WebSocket内置实时功能
- 可扩展架构支持数百万个actor
- 从actor到客户端的类型安全交互
缺点
- 内存限制可能影响大规模应用
- 需要理解actor模型以有效使用
- 依赖外部编排进行扩展
- 其他语言的实验性客户端可能缺乏支持
相关技能
免责声明:本内容来源于 GitHub 开源项目,仅供展示和评分分析使用。
版权归原作者所有 rivet-dev.
