Skip to content

Commit 0045713

Browse files
committed
chore(workspace): update bin and docs 🚧
1 parent 3d73458 commit 0045713

11 files changed

Lines changed: 35 additions & 67 deletions

File tree

Cargo.lock

Lines changed: 18 additions & 18 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ repository = "https://github.com/refcell/roxy"
99
[workspace]
1010
resolver = "2"
1111
members = ["bin/*", "crates/*", "tests", "examples/full-demo"]
12-
default-members = ["bin/roxy"]
12+
default-members = ["bin/roxy-proxy"]
1313
exclude = ["fuzz"]
1414

1515
[workspace.metadata.cargo-udeps.ignore]

README.md

Lines changed: 15 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -2,55 +2,37 @@
22

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

5-
## Features
5+
## Demo
66

7-
- Load balancing across multiple RPC backends with EMA-based health tracking
8-
- Tiered caching with in-memory LRU and Redis support
9-
- Sliding window rate limiting
10-
- HTTP and WebSocket support
11-
- Method routing and request validation
12-
- Prometheus metrics
7+
<https://github.com/user-attachments/assets/3c3fa289-5a12-41ff-b556-e52e4cd1f04d>
138

14-
## Repository Structure
9+
## Overview
1510

16-
```
17-
bin/
18-
roxy/ Entry point for the Roxy binary
19-
crates/
20-
backend/ HTTP backends with health tracking and load balancing
21-
cache/ Memory, Redis, and fallback cache implementations
22-
cli/ CLI definition and application builder
23-
config/ TOML configuration parsing and validation
24-
rpc/ JSON-RPC codec, routing, validation, and rate limiting
25-
runtime/ Tokio and deterministic runtime implementations
26-
server/ HTTP and WebSocket server with metrics
27-
test-utils/ Mock backends, fixtures, and async test helpers
28-
traits/ Core trait definitions for all components
29-
types/ Error types and alloy re-exports
30-
```
11+
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.
3112

32-
## Prerequisites
13+
## Installation
3314

34-
- Rust 1.88+
15+
```bash
16+
cargo install roxy-proxy
17+
```
3518

36-
## Getting Started
19+
## Usage
3720

38-
Clone the repository:
21+
Run the proxy with a configuration file:
3922

4023
```bash
41-
git clone https://github.com/refcell/roxy
42-
cd roxy
24+
roxy-proxy --config roxy.toml
4325
```
4426

45-
Build:
27+
Validate configuration without starting the server:
4628

4729
```bash
48-
cargo build --release
30+
roxy-proxy --config roxy.toml --check
4931
```
5032

51-
## Running Roxy
33+
## Configuration
5234

53-
Create a configuration file:
35+
Create a TOML configuration file:
5436

5537
```toml
5638
[[backends]]
@@ -78,20 +60,6 @@ host = "0.0.0.0"
7860
port = 8545
7961
```
8062

81-
Run the proxy:
82-
83-
```bash
84-
./target/release/roxy --config roxy.toml
85-
```
86-
87-
Validate configuration without starting:
88-
89-
```bash
90-
./target/release/roxy --config roxy.toml --check
91-
```
92-
93-
## Configuration
94-
9563
| Section | Description |
9664
|--------------|------------------------------------------------|
9765
| server | Bind address, port, connection limits |
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
[package]
2-
name = "roxy"
2+
name = "roxy-proxy"
33
description = "High-performance Ethereum JSON-RPC proxy"
44

55
version.workspace = true
File renamed without changes.
File renamed without changes.

0 commit comments

Comments
 (0)