Helix RPC 🧬
The Unified Multi-Protocol Meta-Framework for Modern Microservices and AI Inference.
Seamlessly unifying gRPC, Thrift, and JSON/REST under a single high-performance runtime.
🧬 What is Helix RPC?¶
Helix RPC is not a new competing transport protocol. Instead, it is a unified multi-protocol meta-framework designed to run on top of your existing schemas and systems.
By utilizing a Same-Port Multiplexer and Zero-Allocation Transpilers, Helix sniffs, routes, and transcodes incoming traffic (gRPC over HTTP/2, legacy Apache Thrift compact/binary, or HTTP/JSON REST) dynamically, letting them coexist seamlessly in your cluster.
Why Helix?¶
- Unified Multi-Protocol Server: Accept gRPC, Thrift, HTTP/JSON REST, gRPC-Web, and SSE on a single TCP port.
- Zero-Downtime Migration: Maintain legacy clients and migrate backend services gradually without writing translators or deploying sidecar proxies.
- Direct Kernel Bypass: Automatically bypasses the TCP/IP stack using eBPF Sockmaps for co-located microservices on loopback.
- Zero-Copy Views: Memory-slicing encoders/decoders in Go, Rust, Python, Node.js, Java, and C++ consume up to 70% less memory under high throughput.
🚀 Performance & Packages¶
Helix RPC has been benchmarked against industry standards for HTTP/1.1 JSON REST workloads under high concurrency (100 concurrent connections):
- 16.8× faster than FastAPI (130,993 req/sec vs 7,811 req/sec)
- Matches raw Go net/http within 2% — proving our multi-protocol sniffing and transcoding layers add essentially zero overhead.
Read the full reproducible Performance Benchmarks.
Install the Runtime Packages:
# Go
go get github.com/helixrpc/helix-rpc/runtime-go
# Rust
cargo add helix-rt
# Python
pip install helix-rt
pip install "helix-rt[tensor]" # For zero-copy numpy support
# Node.js
npm install helix-rt-node
# Java (Maven)
<dependency>
<groupId>io.helixrpc</groupId>
<artifactId>helix-rt</artifactId>
</dependency>
# C++ (CMake)
include_directories(helix-rpc/runtimes/cpp/include)
âš¡ Key Features¶
| Feature | Description |
|---|---|
| Same-Port Sniffer | Sniffs incoming packets to route gRPC, Thrift, HTTP/REST, gRPC-Web, and SSE on one port |
| Zero-Copy View | Memory-slicing parser views avoid heap copies during serialization |
| Zero-Allocation Transpiling | Directly translates Protobuf binary to Thrift Compact in-memory |
| Dynamic Batching | Coalesces highly concurrent individual requests into optimal batches for GPU/LLM backends |
| eBPF Kernel Bypass | Kernel-level Sockmap redirection for local loopback routing |
| Single-File Scaffolding | helix-gen init generates schema, stubs, configs, containers, and deployment plans |
| Hot-Reload Config | helix.json watched and hot-reloaded dynamically for auth, rate limits, and compression |
âš¡ Quick Start¶
1. Install the CLI tool¶
2. Scaffold a new unified service¶
This sets up:
my-service/
├── schema.proto # Unified IDL schema
├── server/main.go # Server setup and business handlers
├── generated/ # Sniffers and multi-protocol stubs
├── helix.json # Dynamic hot-reload configuration file
└── Makefile # Commands for local build, test, and container run
3. Write your handler (the only code you write)¶
// server/main.go
server.RegisterMethod("/v1.ModelService/Predict", runtime.MethodInfo{
Handler: func(ctx context.Context, req interface{}) (interface{}, error) {
// Core business logic goes here
return &PredictResponse{Completion: "Processed by Helix Unified Server!"}, nil
},
})
📦 Dynamic Configuration (helix.json)¶
Tweak system behaviors at runtime without restarting your instances:
{
"host": "0.0.0.0",
"port": 8080,
"disable_gzip": false, // Per-message compression toggle
"disable_deadline": false, // Timeout propagation toggle
"rate_limit_rate": 200.0, // Token-bucket refill rate
"rate_limit_burst": 20,
"enable_jwt_auth": true, // Live JWT authentication
"jwt_secret": "my-secret-key"
}