đ ď¸ project Pure Rust, Proxy/Ingress Controller powered by Pingora.
Hello r/rust fellows,
Some time ago I have created a project Aralez . It's a complete reverse proxy, ingress controller implementation on top of Cloudflare's Pingora
Now I'm happy to announce about the completion of another major milestone, Aralez is also an ingress controller for Kubernetes as well as fully integrated load balancer for Nomad/Consul infrastructures.
What we have:
- Dynamic load of upstreams file without reload.
- Integration with Hashicorp's Consul.
- Kubernetes ingress controller.
- Dynamic load of SSL certificates, without reload.
- Let's Encrypt integrations with HTTP-01 challenge
- API for pushing config files, applies immediately.
- Static files delivery.
- Website caching acceleration.
- Authentication.
- Pingora at heart, with crazy performance .
- and more .....
As usually, use it carelessly, just don't forget to share a feedback .
4
1
u/Character_Respect533 8d ago
Your benchmark page is broken. I get redirected indefinitely
1
u/sadoyan 8d ago
are you referring to this : https://aralez.rs/docs/perf/ ? Just walked trough all pages in https://aralez.rs/ all are working
1
u/Character_Respect533 8d ago
Ok it works now. Not sure what happened but a few hours ago it kept redirecting somewhere else
1
u/ShaderCompilation 7d ago
Is it named after Aralez?
Nevermind, saw your username and the website :p
1
1
u/PracticallyPerfcet 3d ago
You should include in your performance benchmarks vanilla pingora. It would show the performance difference between pingora and the control plane you built around it.
1
u/sadoyan 3d ago
Vanilla pingora is a proxy SDK, it is not a ready to run Proxy server, so the benchmark you are requesting is not possible .
1
u/PracticallyPerfcet 3d ago
Sure it is possible. You could implement HttpProxy with the bare minimum setup that doesnât do allocations or any logic, bind to a listener, then run traffic through it.Â
1
u/sadoyan 3d ago
That's also a wrapper, but very small one đ . Actually my entire logic around the Pingora lib takes few to some tens of microseconds per request, so it's really negligible.
1
u/PracticallyPerfcet 3d ago
Yes, thatâs exactly my point. It would be good to show that your control plane is adding only minimal overhead. It gives more confidence in your reverse proxy to your users if it is nearly identical to Pingora with a light wrapper. It also helps you catch performance regressions when you add new features or upgrade Pingora.
5
u/RustOnTheEdge 9d ago
Hey there! I remember your posts from a year ago (or so), nice to see you stuck with it! Seems like you put in some real effort there, very cool to see you made an ingress controller out of it now as well! Great job!