{"id":36933345,"url":"https://github.com/jrcalgo/relayrl","last_synced_at":"2026-04-06T16:03:29.088Z","repository":{"id":332178030,"uuid":"1063792513","full_name":"jrcalgo/RelayRL","owner":"jrcalgo","description":"A MultiAgent Reinforcement Learning Framework primarily for Rust workflows","archived":false,"fork":false,"pushed_at":"2026-04-02T17:41:49.000Z","size":1722,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-04-02T19:10:35.040Z","etag":null,"topics":["cli","deep-learning","distributed-system","framework","monorepo","offline-training","online-training","python-bindings","reinforcement-learning","tensor-types"],"latest_commit_sha":null,"homepage":"https://crates.io/crates/relayrl_framework","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jrcalgo.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-09-25T06:03:46.000Z","updated_at":"2026-04-02T15:35:47.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/jrcalgo/RelayRL","commit_stats":null,"previous_names":["jrcalgo/relayrl"],"tags_count":9,"template":false,"template_full_name":null,"purl":"pkg:github/jrcalgo/RelayRL","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jrcalgo%2FRelayRL","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jrcalgo%2FRelayRL/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jrcalgo%2FRelayRL/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jrcalgo%2FRelayRL/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jrcalgo","download_url":"https://codeload.github.com/jrcalgo/RelayRL/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jrcalgo%2FRelayRL/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31479006,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-06T14:34:32.243Z","status":"ssl_error","status_checked_at":"2026-04-06T14:34:31.723Z","response_time":112,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cli","deep-learning","distributed-system","framework","monorepo","offline-training","online-training","python-bindings","reinforcement-learning","tensor-types"],"created_at":"2026-01-13T08:24:00.915Z","updated_at":"2026-04-06T16:03:29.081Z","avatar_url":"https://github.com/jrcalgo.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n\n# RelayRL\n\n**Multi-Agent Reinforcement Learning Framework**\n\n[![Rust](https://img.shields.io/badge/Rust-2024-orange?logo=rust)](https://www.rust-lang.org/)\n[![License](https://img.shields.io/badge/License-Apache_2.0-blue.svg)](LICENSE)\n[![Status](https://img.shields.io/badge/Status-Beta-orange.svg)]()\n\n*A Rust-native framework for scalable deep reinforcement learning experiments*\n\n\u003c/div\u003e\n\n---\n\n## Overview\n\nRelayRL is a **monorepo** containing a suite of Rust crates designed for distributed multi-agent reinforcement learning. Built with a Rust-first philosophy, the framework prioritizes performance, type safety, and scalability while maintaining an ergonomic API for single- and multi-agent learning environments.\n\n### Key Highlights\n\n- **Pure Rust Core** — No Python dependencies in the framework layer\n- **Multi-Actor Native** — Concurrent actor execution with router-based message dispatching\n- **Backend Agnostic** — Generic tensor interface via Burn (supports `NdArray`, `Tch` for CPU/CUDA/MPS)\n- **Modular Architecture** — Decoupled layers for client, server, transport, and data handling\n- **Robust Error Handling** — Proper error propagation instead of panics\n\n## Crates\n\n| Crate | Version | Description |\n|-------|---------|-------------|\n| [`relayrl_framework`](crates/relayrl_framework/) | `0.5.0-beta` | Core library with the local/default client runtime plus experimental server/transport scaffolding |\n| [`relayrl_types`](crates/relayrl_types/) | `0.5.4` | Data types, tensor containers, inference models, and codec pipeline (compression, encryption, integrity) |\n| [`relayrl_algorithms`](crates/relayrl_algorithms/) | `0.1.0` | Deep RL algorithms (PPO, REINFORCE, etc.) |\n| [`relayrl_env_trait`](crates/relayrl_env_trait/) | `1.0.0` | Stable trait impl. for integrating environment logic |\n| [`relayrl_python`](crates/relayrl_python/) | `0.1.0` | Python bindings via PyO3 — *scaffolding only* |\n| [`relayrl_cli`](crates/relayrl_cli/) | `0.1.0` | Command-line interface with gRPC — *scaffolding only* |\n\n## Platform Support\n\n| Platform | Status |\n|----------|--------|\n| macOS (Apple Silicon) | Tested |\n| Linux (Ubuntu) | Tested |\n| Windows 10 (x86_64) | Tested |\n| Windows 11 (x86_64) | Not tested (yet) |\n\n## Quick Start\n\n### Prerequisites\n\n- Rust 2024 edition (`rustup update`)\n- For GPU support: CUDA toolkit or MPS-compatible macOS\n\n### Installation\n\nIn your Cargo.toml:\n```toml\nrelayrl_framework = \"0.5.0-beta\"\n```\n\n### Basic Usage\n\n```rust\nuse relayrl_framework::prelude::network::{AgentBuilder, RelayRLAgentActors};\nuse relayrl_framework::prelude::types::model::ModelModule;\nuse relayrl_framework::prelude::types::tensor::relayrl::DeviceType;\nuse burn_ndarray::NdArray;\nuse burn_tensor::{Tensor, Float};\n\n#[tokio::main]\nasync fn main() -\u003e Result\u003c(), Box\u003cdyn std::error::Error\u003e\u003e {\n    // Build agent with 4 concurrent actors\n    let default_model = ModelModule::\u003cNdArray\u003e::load_from_path(\"model_dir\")?;\n    let (mut agent, params) = AgentBuilder::\u003cNdArray, 2, 2, Float, Float\u003e::builder()\n        .actor_count(4)\n        .default_model(default_model)\n        .build().await?;\n\n    // Start the agent runtime\n    agent.start(params).await?;\n\n    // Request actions from actors\n    let obs = Tensor::\u003cNdArray, 2, Float\u003e::zeros([1, 4], \u0026Default::default());\n    let ids = agent.get_actor_ids()?;\n    let actions = agent.request_action(ids, obs, None, 1.0).await?;\n\n    // Graceful shutdown\n    agent.shutdown().await?;\n    Ok(())\n}\n```\n\n### 0.5.0-beta Scope\n\nThe supported beta path is the local/default client runtime:\n\n- local inference\n- actor lifecycle management\n- router scaling\n- local trajectory writing\n\nThe following surfaces remain experimental in `0.5.0-beta`, even when the feature flags are available:\n\n- `zmq-transport`\n- `nats-transport`\n- server-backed inference or training workflows\n- server crates and scaffolding\n\nFor more usage details, see the [Framework README](crates/relayrl_framework/README.md) and the [Client Guide](CLIENT_GUIDE.md).\n\n## Framework Roadmap\n\n### Near Term\n- **v0.5.x** — Local/default client runtime beta polish, comprehensive testing, transport-backed flows remain experimental\n- **v0.6.0** — Training Server for Online client workflows, algorithm integration\n\n### Medium Term\n- **v0.7.0** — Inference Server for remote inference capabilities for clients\n- **v0.8.0** — Full system integration, performance optimizations, API stabilization\n\n### Long Term\n- **v0.9.0 / v1.0.0** — Production stability guarantees\n- `relayrl_algorithms` — Complete RL algorithm implementations\n- `relayrl_cli` — Language-agnostic deployable gRPC interface\n\n## Contributing\n\nContributions are welcome! Please read our [Contributing Guide](CONTRIBUTING.md) before submitting PRs.\n\n## License\n\nLicensed under [Apache License 2.0](LICENSE).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjrcalgo%2Frelayrl","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjrcalgo%2Frelayrl","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjrcalgo%2Frelayrl/lists"}