An end-to-end Rust LLM micro platform which is request optimized and kernel optimized, inspired by Cloudflare Infire. More about us
Inferno is a self-healing cloud platform for AI inference, designed for high-performance, reliability, and observability. It demonstrates best practices for distributed systems, with comprehensive testing and robust error recovery for AI workloads.
Tutorials assume you have a linux machine with an Nvidia card (RTX or up)
# get the source
git clone https://github.com/lucky-tensor/inferno.git
cd inferno
# builds the inferno cli
cargo build --release -p inferno
# copy the binary into one of your path folders for binaries
# ~/.cargo/bin recommended since you have rust installed
cp ./target/release/inferno $HOME/.cargo/bin
# check everything is in place
inferno --help
You can use the "play" mode to test a model for inference. You can interact with a downloaded model with a simple Q&A chat interface.
# Download TinyLlama, a 2GB model to demo the UX
# models will be downloaded by default to $HOME/.inferno/models/
inferno download --model-id TinyLlama/TinyLlama-1.1B-Chat-v1.0
# ...wait for that to complete
# play mode will start a backend inference node loaded with the given model
# And in the same process it will provide a simple chat interface which will submit requests to the running server.
# optionally: enable detailed logs to see what's happening in the background:
# export INFERNO_LOG=debug
inferno play
The system uses a dual-server architecture with separate concerns:
┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐
│ Client │───▶│ Proxy Server │───▶│ Backend │
│ │ │ │ │ │
│ HTTP Request │ │ :8080 Pingora │ │ :8080 Inference │
│ │◀───│ - Load Balance │◀───│ (Hyper) │
└─────────────────┘ │ - Forwarding │ └─────────────────┘
└─────────────────┘
│ │
▼ ▼
┌─────────────────┐ ┌─────────────────┐
│ Operations │ │ Operations │
│ Server :6100 │ │ Server :6100 │
│ (Hyper) │ │ (Hyper) │
│ │ │ │
│ - /metrics │ │ - /metrics │
│ - /health │ │ - /health │
│ - /registration │ │ - /registration │
└─────────────────┘ └─────────────────┘
Proxy Server:
Backend Server:
Operations Server: Shared Hyper-based component providing:
GET /metrics: Prometheus metrics endpointGET /health: Health check endpointPOST /registration: Service discovery registration endpointAfter years of deploying AI inference systems in production, we witnessed the same painful patterns across every major solution in the market. IT departments consistently struggle with three fundamental problems that existing tools fail to address:
Ollama: Multiple critical RCE vulnerabilities discovered in 2024 (CVE-2024-37032, etc.). Wiz Research found 9,831 exposed instances on the internet without authentication (as of Q4 2024), with 1 in 4 servers considered vulnerable. No built-in authentication means every deployment requires reverse proxy setup.
Solution: Inferno includes secure defaults, built-in authentication, and follows security-first design principles from day one. Built in Rust, we eliminate entire classes of vulnerabilities (buffer overflows, use-after-free, memory corruption) that plague C/C++ implementations used by competitors.
NVIDIA Dynamo: Alpha-stage software (as of 2025 release) requiring NATS, etcd, and complex distributed setup. AWS EKS deployments frequently fail with image pull errors and pod failures. Manual memory tuning and GPU visibility management required.
llm-d: Kubernetes-native framework (launched 2024) with mandatory K8s 1.29+ requirement and no bare-metal options. Requires specialized DevOps expertise for disaggregated architecture. Container bloat from massive model files (10GB+) slows cold starts.
Solution: Inferno offers zero-configuration startup with optimal defaults. Container-optional deployment means you can run on bare metal, VMs, or containers as needed.
Ollama: Not designed for cloud/production usage - fundamentally single-machine focused. No user management, minimal monitoring, no compliance certifications. Recent concurrency support still requires multiple instances with massive memory waste.
All Competitors: Multi-language stacks (Rust→Python→C++) create serialization overhead and performance bottlenecks. Manual failover requires human intervention during outages.
Solution: Inferno provides true cloud-native design with SWIM consensus for self-healing, pure Rust stack eliminates both performance penalties and memory safety vulnerabilities, and comprehensive observability built-in.
Every existing solution forces a choice: use inadequate open-source tools or pay expensive enterprise licenses for basic functionality. IT departments need production-ready solutions without enterprise lock-in.
Solution: Inferno Community Edition delivers enterprise-grade performance, security, and reliability for free. Enterprise Edition adds Governator AI automation and cost optimization for organizations that need maximum ROI.
| Feature | Inferno Community | Inferno Enterprise | Nvidia Dynamo | llm-d (K8s) | Ollama |
|---|---|---|---|---|---|
| Deployment Speed | ⚡ Rapid (zero-config) | ⚡ Rapid (zero-config) | 🐌 Complex setup | 🐌 Complex setup | 🔄 Medium |
| Runtime Performance | 🚀 High (Rust VLLM) | 🚀 Enhanced (Disaggregated) | 🐌 Multi-lang overhead | 🐌 Multi-lang overhead | 🐌 Single-node only |
| Language Stack | 🦀 Pure Rust | 🦀 Pure Rust | 🔄 Rust→Python→C++ | 🔄 Python→C++→Python | 🔄 Go→Python→C++ |
| Serialization | ✅ Zero-copy | ✅ Zero-copy | ❌ Repeated ser/deser | ❌ Repeated ser/deser | ❌ Repeated ser/deser |
| Cloud Design | ✅ Cloud-native | ✅ Cloud-native | ✅ Cloud-focused | ✅ Cloud-focused | ❌ Single-machine |
| Self-Healing | ✅ SWIM consensus | ✅ Enhanced SWIM | ❌ Manual failover | ❌ Manual failover | ❌ Manual restart |
| Container Dependency | 🆓 Optional | 🆓 Optional | 📦 Required (K8s) | 📦 Kubernetes-native | 🐳 Docker only |
| Load Balancing | ✅ Pingora + HTTP/3 | ✅ Pingora + HTTP/3 | 🔄 Basic | 🔄 Basic | ❌ None |
| Cost Optimization | ❌ Manual | ✅ Governator AI | 💰 Expensive | 💰 Expensive | 🆓 Free |
| GPU Optimization | 🔧 Manual tuning | 🧠 Auto (Governator) | 🔧 Manual tuning | 🔧 Manual tuning | 🔧 Manual tuning |
| Observability | 📊 Prometheus | 📊 Enhanced metrics | 🔄 Limited | 🔄 Limited | ❌ Basic logs |
| Protocol Support | ✅ HTTP/3, QUIC | ✅ HTTP/3, QUIC | 🔄 HTTP/2 only | 🔄 HTTP/2 only | 🔄 HTTP/1.1 |
| Extensibility | 🔒 Performance-first | 🔒 Performance-first | 🔧 Highly extensible | 🔧 Highly extensible | 🔧 Plugin system |
| License | 🆓 Free | 💰 Commercial | 🆓 Open source* | 🆓 Apache 2.0 | 🆓 Open source (MIT) |
*Nvidia Dynamo: Open source with optional enterprise support via NVIDIA AI Enterprise llm-d: Kubernetes-native framework by CoreWeave, Google, IBM, NVIDIA, Red Hat
Key Advantages:
Sub-60 second deployment with production-grade performance optimization.
Ideal for teams seeking production-ready performance with minimal operational overhead.
Production-grade performance with intelligent cluster management and cost optimization.
Enterprise Edition provides measurable ROI through automated optimization, disaggregated architecture, and intelligent cost management.
The proxy can be configured through environment variables with the PINGORA_ prefix:
| Variable | Default | Description |
|---|---|---|
PINGORA_LISTEN_ADDR | 127.0.0.1:8080 | Proxy listen address |
PINGORA_BACKEND_ADDR | 127.0.0.1:3000 | Primary backend address |
PINGORA_BACKEND_SERVERS | - | Comma-separated list for load balancing |
PINGORA_MAX_CONNECTIONS | 10000 | Maximum concurrent connections |
PINGORA_TIMEOUT_SECONDS | 30 | Request timeout |
PINGORA_ENABLE_HEALTH_CHECK | true | Enable backend health checking |
PINGORA_HEALTH_CHECK_INTERVAL_SECONDS | 30 | Health check frequency |
PINGORA_HEALTH_CHECK_PATH | /health | Health check endpoint |
PINGORA_LOG_LEVEL | info | Logging level (error/warn/info/debug/trace) |
PINGORA_ENABLE_METRICS | true | Enable metrics collection |
INFERNO_OPERATIONS_ADDR | 127.0.0.1:6100 | Operations server address |
PINGORA_ENABLE_TLS | false | Enable TLS/SSL |
PINGORA_LOAD_BALANCING_ALGORITHM | round_robin | Load balancing strategy |
# Production-like setup with load balancing
export PINGORA_LISTEN_ADDR="0.0.0.0:80"
export PINGORA_BACKEND_SERVERS="10.0.1.10:8080,10.0.1.11:8080,10.0.1.12:8080"
export PINGORA_MAX_CONNECTIONS="50000"
export PINGORA_LOG_LEVEL="warn"
export PINGORA_LOAD_BALANCING_ALGORITHM="least_connections"
cargo run --release
# Run all tests
cargo test
# Run unit tests only
cargo test --lib
# Run integration tests
cargo test --test integration_tests
# Run with logging
RUST_LOG=debug cargo test
# Run all benchmarks
cargo bench
# Run specific benchmark group
cargo bench metrics
cargo bench config
# Generate HTML reports
cargo bench --bench proxy_benchmarks
open target/criterion/report/index.html
# Lint code
cargo clippy -- -D warnings
# Format code
cargo fmt
# Check for security vulnerabilities
cargo audit
# Generate documentation
cargo doc --open
# Start a test backend
python3 -m http.server 3000 &
# Test proxy functionality
curl http://localhost:8080/
# View proxy metrics (operations server)
curl http://localhost:6100/metrics
# Check proxy health (operations server)
curl http://localhost:6100/health
# Register a backend (operations server)
curl -X POST http://localhost:6100/registration \
-H "Content-Type: application/json" \
-d '{"id":"test-backend","address":"127.0.0.1:3000","metrics_port":6100}'
The proxy achieves the following performance characteristics on modern hardware:
The proxy exposes comprehensive metrics in Prometheus format:
# Request metrics
proxy_requests_total
proxy_requests_active
proxy_responses_total
proxy_responses_by_status_total
# Performance metrics
proxy_request_duration_ms
proxy_success_rate
proxy_requests_per_second
# Backend metrics
proxy_backend_connections_total
proxy_backend_connection_errors_total
GET /health on operations server (port 6100)GET /health on operations server (port 6100) + automatic monitoring with configurable intervalsPOST /registration on operations server (port 6100)Structured JSON logging with configurable levels:
{
"timestamp": "2023-12-07T10:30:45Z",
"level": "INFO",
"message": "Request processed successfully",
"backend": "192.168.1.10:8080",
"status": 200,
"duration_ms": 15,
"request_id": "req_123456"
}
X-Content-Type-Options: nosniff
X-Frame-Options: DENY
X-Proxy-Cache: MISS
X-Forwarded-By: pingora-proxy-demo
cargo test to verify setupcargo fmt and cargo clippyNo lint errors
cargo clippy --all-targets --all-features -- -D warnings
Formattedcargo fmt --check
No unused dependenciescargo machete
No failing testscargo testLicensed under the Apache License, Version 2.0. See LICENSE for details.
Rust
64.2%
HTML
35.4%
An end-to-end Rust LLM micro platform which is request optimized and kernel optimized, inspired by Cloudflare Infire. More about us
Inferno is a self-healing cloud platform for AI inference, designed for high-performance, reliability, and observability. It demonstrates best practices for distributed systems, with comprehensive testing and robust error recovery for AI workloads.
Tutorials assume you have a linux machine with an Nvidia card (RTX or up)
# get the source
git clone https://github.com/lucky-tensor/inferno.git
cd inferno
# builds the inferno cli
cargo build --release -p inferno
# copy the binary into one of your path folders for binaries
# ~/.cargo/bin recommended since you have rust installed
cp ./target/release/inferno $HOME/.cargo/bin
# check everything is in place
inferno --help
You can use the "play" mode to test a model for inference. You can interact with a downloaded model with a simple Q&A chat interface.
# Download TinyLlama, a 2GB model to demo the UX
# models will be downloaded by default to $HOME/.inferno/models/
inferno download --model-id TinyLlama/TinyLlama-1.1B-Chat-v1.0
# ...wait for that to complete
# play mode will start a backend inference node loaded with the given model
# And in the same process it will provide a simple chat interface which will submit requests to the running server.
# optionally: enable detailed logs to see what's happening in the background:
# export INFERNO_LOG=debug
inferno play
The system uses a dual-server architecture with separate concerns:
┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐
│ Client │───▶│ Proxy Server │───▶│ Backend │
│ │ │ │ │ │
│ HTTP Request │ │ :8080 Pingora │ │ :8080 Inference │
│ │◀───│ - Load Balance │◀───│ (Hyper) │
└─────────────────┘ │ - Forwarding │ └─────────────────┘
└─────────────────┘
│ │
▼ ▼
┌─────────────────┐ ┌─────────────────┐
│ Operations │ │ Operations │
│ Server :6100 │ │ Server :6100 │
│ (Hyper) │ │ (Hyper) │
│ │ │ │
│ - /metrics │ │ - /metrics │
│ - /health │ │ - /health │
│ - /registration │ │ - /registration │
└─────────────────┘ └─────────────────┘
Proxy Server:
Backend Server:
Operations Server: Shared Hyper-based component providing:
GET /metrics: Prometheus metrics endpointGET /health: Health check endpointPOST /registration: Service discovery registration endpointAfter years of deploying AI inference systems in production, we witnessed the same painful patterns across every major solution in the market. IT departments consistently struggle with three fundamental problems that existing tools fail to address:
Ollama: Multiple critical RCE vulnerabilities discovered in 2024 (CVE-2024-37032, etc.). Wiz Research found 9,831 exposed instances on the internet without authentication (as of Q4 2024), with 1 in 4 servers considered vulnerable. No built-in authentication means every deployment requires reverse proxy setup.
Solution: Inferno includes secure defaults, built-in authentication, and follows security-first design principles from day one. Built in Rust, we eliminate entire classes of vulnerabilities (buffer overflows, use-after-free, memory corruption) that plague C/C++ implementations used by competitors.
NVIDIA Dynamo: Alpha-stage software (as of 2025 release) requiring NATS, etcd, and complex distributed setup. AWS EKS deployments frequently fail with image pull errors and pod failures. Manual memory tuning and GPU visibility management required.
llm-d: Kubernetes-native framework (launched 2024) with mandatory K8s 1.29+ requirement and no bare-metal options. Requires specialized DevOps expertise for disaggregated architecture. Container bloat from massive model files (10GB+) slows cold starts.
Solution: Inferno offers zero-configuration startup with optimal defaults. Container-optional deployment means you can run on bare metal, VMs, or containers as needed.
Ollama: Not designed for cloud/production usage - fundamentally single-machine focused. No user management, minimal monitoring, no compliance certifications. Recent concurrency support still requires multiple instances with massive memory waste.
All Competitors: Multi-language stacks (Rust→Python→C++) create serialization overhead and performance bottlenecks. Manual failover requires human intervention during outages.
Solution: Inferno provides true cloud-native design with SWIM consensus for self-healing, pure Rust stack eliminates both performance penalties and memory safety vulnerabilities, and comprehensive observability built-in.
Every existing solution forces a choice: use inadequate open-source tools or pay expensive enterprise licenses for basic functionality. IT departments need production-ready solutions without enterprise lock-in.
Solution: Inferno Community Edition delivers enterprise-grade performance, security, and reliability for free. Enterprise Edition adds Governator AI automation and cost optimization for organizations that need maximum ROI.
| Feature | Inferno Community | Inferno Enterprise | Nvidia Dynamo | llm-d (K8s) | Ollama |
|---|---|---|---|---|---|
| Deployment Speed | ⚡ Rapid (zero-config) | ⚡ Rapid (zero-config) | 🐌 Complex setup | 🐌 Complex setup | 🔄 Medium |
| Runtime Performance | 🚀 High (Rust VLLM) | 🚀 Enhanced (Disaggregated) | 🐌 Multi-lang overhead | 🐌 Multi-lang overhead | 🐌 Single-node only |
| Language Stack | 🦀 Pure Rust | 🦀 Pure Rust | 🔄 Rust→Python→C++ | 🔄 Python→C++→Python | 🔄 Go→Python→C++ |
| Serialization | ✅ Zero-copy | ✅ Zero-copy | ❌ Repeated ser/deser | ❌ Repeated ser/deser | ❌ Repeated ser/deser |
| Cloud Design | ✅ Cloud-native | ✅ Cloud-native | ✅ Cloud-focused | ✅ Cloud-focused | ❌ Single-machine |
| Self-Healing | ✅ SWIM consensus | ✅ Enhanced SWIM | ❌ Manual failover | ❌ Manual failover | ❌ Manual restart |
| Container Dependency | 🆓 Optional | 🆓 Optional | 📦 Required (K8s) | 📦 Kubernetes-native | 🐳 Docker only |
| Load Balancing | ✅ Pingora + HTTP/3 | ✅ Pingora + HTTP/3 | 🔄 Basic | 🔄 Basic | ❌ None |
| Cost Optimization | ❌ Manual | ✅ Governator AI | 💰 Expensive | 💰 Expensive | 🆓 Free |
| GPU Optimization | 🔧 Manual tuning | 🧠 Auto (Governator) | 🔧 Manual tuning | 🔧 Manual tuning | 🔧 Manual tuning |
| Observability | 📊 Prometheus | 📊 Enhanced metrics | 🔄 Limited | 🔄 Limited | ❌ Basic logs |
| Protocol Support | ✅ HTTP/3, QUIC | ✅ HTTP/3, QUIC | 🔄 HTTP/2 only | 🔄 HTTP/2 only | 🔄 HTTP/1.1 |
| Extensibility | 🔒 Performance-first | 🔒 Performance-first | 🔧 Highly extensible | 🔧 Highly extensible | 🔧 Plugin system |
| License | 🆓 Free | 💰 Commercial | 🆓 Open source* | 🆓 Apache 2.0 | 🆓 Open source (MIT) |
*Nvidia Dynamo: Open source with optional enterprise support via NVIDIA AI Enterprise llm-d: Kubernetes-native framework by CoreWeave, Google, IBM, NVIDIA, Red Hat
Key Advantages:
Sub-60 second deployment with production-grade performance optimization.
Ideal for teams seeking production-ready performance with minimal operational overhead.
Production-grade performance with intelligent cluster management and cost optimization.
Enterprise Edition provides measurable ROI through automated optimization, disaggregated architecture, and intelligent cost management.
The proxy can be configured through environment variables with the PINGORA_ prefix:
| Variable | Default | Description |
|---|---|---|
PINGORA_LISTEN_ADDR | 127.0.0.1:8080 | Proxy listen address |
PINGORA_BACKEND_ADDR | 127.0.0.1:3000 | Primary backend address |
PINGORA_BACKEND_SERVERS | - | Comma-separated list for load balancing |
PINGORA_MAX_CONNECTIONS | 10000 | Maximum concurrent connections |
PINGORA_TIMEOUT_SECONDS | 30 | Request timeout |
PINGORA_ENABLE_HEALTH_CHECK | true | Enable backend health checking |
PINGORA_HEALTH_CHECK_INTERVAL_SECONDS | 30 | Health check frequency |
PINGORA_HEALTH_CHECK_PATH | /health | Health check endpoint |
PINGORA_LOG_LEVEL | info | Logging level (error/warn/info/debug/trace) |
PINGORA_ENABLE_METRICS | true | Enable metrics collection |
INFERNO_OPERATIONS_ADDR | 127.0.0.1:6100 | Operations server address |
PINGORA_ENABLE_TLS | false | Enable TLS/SSL |
PINGORA_LOAD_BALANCING_ALGORITHM | round_robin | Load balancing strategy |
# Production-like setup with load balancing
export PINGORA_LISTEN_ADDR="0.0.0.0:80"
export PINGORA_BACKEND_SERVERS="10.0.1.10:8080,10.0.1.11:8080,10.0.1.12:8080"
export PINGORA_MAX_CONNECTIONS="50000"
export PINGORA_LOG_LEVEL="warn"
export PINGORA_LOAD_BALANCING_ALGORITHM="least_connections"
cargo run --release
# Run all tests
cargo test
# Run unit tests only
cargo test --lib
# Run integration tests
cargo test --test integration_tests
# Run with logging
RUST_LOG=debug cargo test
# Run all benchmarks
cargo bench
# Run specific benchmark group
cargo bench metrics
cargo bench config
# Generate HTML reports
cargo bench --bench proxy_benchmarks
open target/criterion/report/index.html
# Lint code
cargo clippy -- -D warnings
# Format code
cargo fmt
# Check for security vulnerabilities
cargo audit
# Generate documentation
cargo doc --open
# Start a test backend
python3 -m http.server 3000 &
# Test proxy functionality
curl http://localhost:8080/
# View proxy metrics (operations server)
curl http://localhost:6100/metrics
# Check proxy health (operations server)
curl http://localhost:6100/health
# Register a backend (operations server)
curl -X POST http://localhost:6100/registration \
-H "Content-Type: application/json" \
-d '{"id":"test-backend","address":"127.0.0.1:3000","metrics_port":6100}'
The proxy achieves the following performance characteristics on modern hardware:
The proxy exposes comprehensive metrics in Prometheus format:
# Request metrics
proxy_requests_total
proxy_requests_active
proxy_responses_total
proxy_responses_by_status_total
# Performance metrics
proxy_request_duration_ms
proxy_success_rate
proxy_requests_per_second
# Backend metrics
proxy_backend_connections_total
proxy_backend_connection_errors_total
GET /health on operations server (port 6100)GET /health on operations server (port 6100) + automatic monitoring with configurable intervalsPOST /registration on operations server (port 6100)Structured JSON logging with configurable levels:
{
"timestamp": "2023-12-07T10:30:45Z",
"level": "INFO",
"message": "Request processed successfully",
"backend": "192.168.1.10:8080",
"status": 200,
"duration_ms": 15,
"request_id": "req_123456"
}
X-Content-Type-Options: nosniff
X-Frame-Options: DENY
X-Proxy-Cache: MISS
X-Forwarded-By: pingora-proxy-demo
cargo test to verify setupcargo fmt and cargo clippyNo lint errors
cargo clippy --all-targets --all-features -- -D warnings
Formattedcargo fmt --check
No unused dependenciescargo machete
No failing testscargo testLicensed under the Apache License, Version 2.0. See LICENSE for details.
Rust
64.2%
HTML
35.4%