GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — GitHub - refcell/roxy: An Extensible and Modular RPC Request Router and Proxy Service. Built in Rust.

BranchesTags
Open more actions menu

Latest commit

 

History

35 Commits
35 Commits

Folders and files

NameName
Last commit message
Last commit date
.github/workflows
.github/workflows
 
 
bin/roxy-proxy
bin/roxy-proxy
 
 
crates
crates
 
 
examples/full-demo
examples/full-demo
 
 
fuzz
fuzz
 
 
tests
tests
 
 
.gitignore
.gitignore
 
 
Cargo.lock
Cargo.lock
 
 
Cargo.toml
Cargo.toml
 
 
Justfile
Justfile
 
 
LICENSE
LICENSE
 
 
README.md
README.md
 
 
lychee.toml
lychee.toml
 
 
rustfmt.toml
rustfmt.toml
 
 

Repository files navigation

Roxy

An extensible and modular RPC request router and proxy service built in Rust.

CI Crates.io License: MIT

Demo

demo.mov

Overview

Roxy is a JSON-RPC proxy that sits between clients and upstream RPC backends. It distributes requests across multiple backends using exponential moving average (EMA) based health tracking to route traffic toward healthier endpoints. Responses can be cached in a tiered system with an in-memory LRU cache and optional Redis backing. Rate limiting uses a sliding window algorithm to control request throughput. The server accepts both HTTP and WebSocket connections and exposes Prometheus metrics for observability.

Installation

cargo install roxy-proxy

Usage

Run the proxy with a configuration file:

roxy-proxy --config roxy.toml

Validate configuration without starting the server:

roxy-proxy --config roxy.toml --check

Configuration

Create a TOML configuration file:

[[backends]]
name = "primary"
url = "https://eth-mainnet.example.com"

[[backends]]
name = "fallback"
url = "https://eth-mainnet-fallback.example.com"

[[groups]]
name = "main"
backends = ["primary", "fallback"]
load_balancer = "ema"

[routing]
default_group = "main"

[cache]
enabled = true
memory_size = 10000

[server]
host = "0.0.0.0"
port = 8545
Section Description
server Bind address, port, connection limits
backends Upstream RPC endpoints with timeout and retry
groups Backend groups with load balancing strategy
cache Memory size and TTL settings
rate_limit Requests per second and burst limits
routing Method routing rules and blocked methods
metrics Prometheus metrics endpoint

Acknowledgments

Roxy's design draws inspiration from the commonwarexyz/monorepo.

License

This project is licensed under the MIT License - see the LICENSE file for details.

About

An Extensible and Modular RPC Request Router and Proxy Service. Built in Rust.

crates.io/crates/roxy-proxy

Topics

ethereumjsonrpcproxyrust

Resources

Readme
MIT license
Activity

Stars

8 stars

Watchers

0 watching

Forks

3 forks
Report repository

Releases

Packages

Used by

Contributors

Languages

You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.