✳The starting point
A request has a story.
Your gateway should tell it.
At Nexarq, we build AI products and help teams run applications across Cloudflare, hyperscale clouds, and SaaS services such as OpenAI and PlanetScale. A request can cross several systems, while the explanation for what happened is scattered across all of them.
Routing is one part of the job. Understanding why a request failed, what changed, and where to look next is the part that keeps engineers busy.
What if the gateway helped you understand the traffic it handled?
That question became Relay: routing, custom request logic, configuration, and traffic inspection in one place. A gateway you can run on your own infrastructure.
✳Close to the request
A little Rust.
A real proxy.
Accept an HTTP request on port 8080. Forward it to your local app on port 3000. Let Pingora handle the exchange.
This is a minimal standalone example, showing the foundation Relay builds on.
Download the example ↓Native Rust process.
The website itself runs on Workers.
main.rsRust / Pingora 0.9
use async_trait::async_trait;use pingora::prelude::*;use pingora::proxy::{http_proxy_service, ProxyHttp, Session};struct Gateway;#[async_trait]impl ProxyHttp for Gateway { type CTX = (); fn new_ctx(&self) -> Self::CTX {} async fn upstream_peer( &self, _session: &mut Session, _ctx: &mut Self::CTX, ) -> Result<Box<HttpPeer>> { let app = ("127.0.0.1", 3000); Ok(Box::new(HttpPeer::new(app, false, String::new()))) }}fn main() { let mut server = Server::new(None).unwrap(); server.bootstrap(); let mut proxy = http_proxy_service( &server.configuration, Gateway, ); proxy.add_tcp("127.0.0.1:8080"); server.add_service(proxy); server.run_forever();}
localhost:8080 → localhost:3000HTTP
No cookies. No trackers. No hidden JavaScript.
This site is just HTML and CSS. We don't set cookies, run analytics, load third-party assets, or collect information through forms. No client-side JavaScript, local storage, or tracking pixels.
Worker request logs and traces are disabled. Cloudflare processes network requests to deliver and protect the site; its infrastructure may process connection metadata.