And yet we have only a handful and one of the most popular charges money for cool features and does not appear to have an ABI for addons.
And yet we have only a handful and one of the most popular charges money for cool features and does not appear to have an ABI for addons.
Apache, nginx, haproxy, envoy, traefik, and probably dozens more that aren't on the top of my head.
Also there exists an http module for emacs: https://www.emacswiki.org/emacs/HttpServer
> > Apache, nginx, haproxy, envoy, traefik, and probably dozens more that aren't on the top of my head.
> You literally listed a handful ;)
How many solutions to a problem are needed when the problem is well-defined before there is no longer a need to grab for more?
Several of those are ingress routers, and I’ve seen no claims of those being able to run standalone (ie without specifically k8tes) so they are technically load balancer, except they can’t operate standalone. Say I wanted to run one per server instead of NodeJS cluster mode. I could not substitute those, right?
One is F5 which nobody says anything nice about anymore, and was positioned as a hardware solution for most of its good years.
I’d also note that a number of these are pretty young, indicating that there was a power vacuum that is now filling in.
And we've started creating them for other fields, like visual effects: https://landscape.aswf.io/
HAProxy on the other hand has been doing some really fantastic stuff lately that is in the open source. It makes me a bit sad that the former is the "go to" and HAProxy doesn't get the usage it deserves.
To your specific point though I think it's just super tricky to get all the features people expect at the performance they expect as well. You essentially need to implement an very efficient HTTP server, also apparently not trivial, in order to get expected Layer 7 features.. Embedded scripting language support is quickly becoming de facto.. Simple traffic proxy/forwarding is the easy part but getting something competitive together feature and performance wise feels way beyond teeth cutting?
EDIT: Using golang as an example. You would need to either piggy-back the best HTTP server available for your language platform or write your own. The stdlib Golang http server is not competitive performance wise. The reasons for this are pretty well known and seem to be largely accepted by the core team(AFAICT). This won't impact most app and service developers too much, but for an LB service the number of cycles it leaves on the table my not be acceptable at all.
Not meant to be my own criticism, just an observation. I believe the net/http interface ossified its own design decisions making it hard/impossible to be compatible with?
That's why fasthttp uses a different design.