Hacker News

Caddy compatibility for zeroserve: 3x throughput and 70% lower latency

89 points by losfair ago | 23 comments

1a527dd5 |next [-]

Anyone else got a really weird Chorme pop-up asking which cert to use for su3.io:443?

Very bizarre, never seen that before.

Thumbprints:

  - 60949a09aab8677f87a0b9eda7099a03ca510fb3
  - 1b146798f0dc93773247e86312f1b730c4eeebb3

KronisLV |root |parent |next [-]

> Very bizarre, never seen that before.

For my own stuff that's not meant for a wider audience, I sometimes use mTLS in front of my apps, alongside self-signed certs (my own CA) that shouldn't show up in certificate transparency logs.

This site also seems to be requesting a certificate from the user. Normally you probably don't want that for public facing resources.

embedding-shape |root |parent |next |previous [-]

Here it attempts to read my personal certificate that sits in the browser that I use for filling my taxes and do government stuff, suspicious indeed.

cmgbhm |root |parent |next [-]

That’s likely just the side effect of supporting mtls. Mutual TLS came around at the same time as Microsoft did implicit network auth. Seemed magical at the time and so hare brained for eons of problems. The user side tls never caught on in most circles and still has the ancient sharp edges

mook |root |parent |previous [-]

That's because the client certificate interface in browsers is supremely dumb. It always just lists all certificates you have, with very little context in the UI, and hopes that's good enough. I believe that's part of the reason client certificates are not poplar; having actual users deal with that is terrible, and the browsers (in practice, Chrome because of its overwhelming market share) isn't incentivized to fix it.

sunaookami |root |parent |next |previous [-]

Same on Firefox

linsomniac |root |parent |next |previous [-]

Same on Arc

jorl17 |root |parent |previous [-]

Same on Zen

tln |next |previous [-]

codys |root |parent [-]

Yes, I agree it would be very nice to have a way to integrate ACME into zeroserve. I'm not sure if zeroserve's plugin system might allow one to add a plugin to support it?

codingjoe |next |previous [-]

"Caddy compatible" minus everything that matters, like ACME and plugins. And NGINX still steals the show. Not everything needs to be rewritten.

__natty__ |root |parent [-]

Same thoughts. If I need more performant caddy alternative I'm going to use nginx at least it has some extras.

augunrik |next |previous [-]

I am surprised how well nginx holds up?!

phillipseamore |root |parent [-]

Why? It's one of the most optimized HTTP servers ever. Anything that claims beating nginx in benchmarks should be treated with high suspicion. I think these zeroserve numbers are likely accurate but it doesn't have the features and module ecosystem of nginx so the margins aren't worth it for me.

augunrik |root |parent [-]

Because it passes more boundaries and stuff. But hey, I didn’t code a Webserver so far - so what do I know. :D

AFAIK eBPF can be hardware offloaded. If you have the use case.

someothherguyy |root |parent [-]

> But hey, I didn’t code a Webserver so far - so what do I know

If you limit the scope, its worth doing and might not take as much effort as you might think. You could possibly find some enjoyment and learn a few things doing so.

smallerize |next |previous [-]

I still think of eBPF as not being Turing-complete. There is still a complexity limit in the verifier. Even if someone did implement Game of Life by having the program set a timer to run itself. https://isovalent.com/blog/post/ebpf-yes-its-turing-complete...

codys |root |parent [-]

zeroserve doesn't use the Linux kernel's eBPF runtime to run the eBPF it uses, so the constraints of the Linux kernel's eBPF runtime (chosen because of how the Linux kernel thinks about protecting the Linux kernel from user space) don't apply to zeroserve (or other tools that use the eBPF instruction set but don't use the Linux kernel's particular implementation)

zsoltkacsandi |next |previous [-]

From a technical standpoint, these are always impressive projects, but I've always wondered: has anyone ever encountered a use case where the Caddy was the bottleneck?

keynha |root |parent |next [-]

[dead]

sieabahlpark |root |parent |previous [-]

[dead]

Thaxll |next |previous [-]

Another vibe coded, dead in 6 month Rust project.

People that trully need performance are not going to use a random server that has 0 support/ track record.

BoingBoomTschak |next |previous [-]

Interesting. Trying to get some of the performance advantages of TUX/IIS without as much insecurity makes sense for some big players, I guess.

The usual 3400 lines lock file and AGENTS.md raise some questions about the aforementioned security, though.

dshat |next |previous [-]

No thanks

nullstyle |previous [-]

Fudge, I really need to carve out time today to play with zeroserve. Very cool stuff