Live data from Hacker News

Ferron – A fast, memory-safe web server written in Rust

github.com

31–40 of 102 posts

Re: Ferron – A fast, memory-safe web server written in Rust

#32

The author of Ferron web server here. Thank you so much for submitting this, and thank you all for the support you have shown when I submitted the server on Hacker News.

Some feedback: you really need to put a features list somewhere prominent and tell people what distinguishes your webserver from others in terms of its capabilities.

Also, your FAQ really makes you come off as incredibly patronizing.

Re: Ferron – A fast, memory-safe web server written in Rust

#33

The author of Ferron web server here. Thank you so much for submitting this, and thank you all for the support you have shown when I submitted the server on Hacker News.

Important part of caddy’s configuration are their defaults. For example TLS and automatic certificates are on by default. It covers the most useful use case by default. Ferron is different. Is that a choice or just something you didn’t work on yet?

Well, Ferron has HTTP/2 and OCSP stapling enabled by default when HTTPS is enabled.

Re: Ferron – A fast, memory-safe web server written in Rust

#34

The author of Ferron web server here. Thank you so much for submitting this, and thank you all for the support you have shown when I submitted the server on Hacker News.

Some feedback: you really need to put a features list somewhere prominent and tell people what distinguishes your webserver from others in terms of its capabilities. Also, your FAQ really makes you come off as incredibly patronizing.

Why do you think that FAQ makes me come off as patronizing?

Re: Ferron – A fast, memory-safe web server written in Rust

#35
post #24

How much memory does it use? Is it suitable for memory-limited scenarios like a Raspberry Pi 1 with 256MB?

I am not exactly sure, but comparing Ferron 1.0.0-beta5 and Caddy 2.9.1 in a benchmark where HTTPS, HTTP/2 are enabled, and default Apache httpd page was served, Caddy used so much memory, that at 12,600 requests per second the system with 16 GB RAM ran out of memory, while Ferron didn't use that much memory, and benchmark succeeded up to 20,000 requests per second. Maybe it's a bug in Caddy?

It also can be Go issue. Garbage collector did not have time to free memory.

Re: Ferron – A fast, memory-safe web server written in Rust

#36
Every web server claims to be fast, so I wonder how they define that. As someone who has written their own supposedly fast web server I only want configuration simplicity. Most web servers are unnecessarily far too complicated.

In a web server here is what I am looking for:

* Fast. That is just a matter of streams and pipes. More on this later. That said the language the web server is written in largely irrelevant to its real world performance so long as it can execute low level streams and pipes.

* HTTP and WebSocket support. Ideally a web server will support both on the same port. It’s not challenging because you just have to examine the first incoming payload on the connection.

* Security. This does not have to be complicated. Let the server administrator define their own security rules and just execute those rules on incoming connections. For everything that fails just destroy the connection. Don’t send any response.

* Proxy/reverse proxy support. This is more simple than it sounds. It’s just a pipe to another local existing stream or piping to a new stream opened to a specified location. If authentication is required it can be the same authentication that sits behind the regular 403 HTTP response. The direction of the proxy is just a matter of who pipes to who.

* TLS with and without certificate trust. I HATE certificates with extreme anger, especially for localhost connections. A good web server will account for that anger.

* File system support. Reading from the file system for a specific resource by name should be a low level stream via file descriptor piped back to the response. If this specific file system resource is something internally required by the application, like a default homepage it should be read only once and then forever fetched from memory by variable name. Displaying file system resources, like a directory listing, doesn’t have to be slow or primitive or brittle.

Re: Ferron – A fast, memory-safe web server written in Rust

#37

Earlier quoted context omitted.

Some feedback: you really need to put a features list somewhere prominent and tell people what distinguishes your webserver from others in terms of its capabilities. Also, your FAQ really makes you come off as incredibly patronizing.

Why do you think that FAQ makes me come off as patronizing?

I am also wondering about this.

To me, your FAQ quickly addressed all questions I had to get a first grasp of the capabilities. It appears to me that you had a determined scope and I very much like that!

Re: Ferron – A fast, memory-safe web server written in Rust

#38

Every web server claims to be fast, so I wonder how they define that. As someone who has written their own supposedly fast web server I only want configuration simplicity. Most web servers are unnecessarily far too complicated. In a web server here is what I am looking for: * Fast. That is just a matter of streams and pipes. More on this later. That said the language the web server is written in largely irrelevant to…

Most of these things are much harder to get right that you make it sound. Perhaps proxying most so. It is a legitimately hard problem. Look at something like Varnish, which is likely one of the better proxies out there. It took many years to get good.

I never had to write a proxy and am grateful for it. You have to really understand the whole network stack, window sizes and the effects of buffering, what to do about in flight requests, and so on. Just sending stuff from the file system is comparatively easier where you have things such as sendfile, provided you get the security implications of file paths right.

Re: Ferron – A fast, memory-safe web server written in Rust

#39

Earlier quoted context omitted.

Some feedback: you really need to put a features list somewhere prominent and tell people what distinguishes your webserver from others in terms of its capabilities. Also, your FAQ really makes you come off as incredibly patronizing.

Why do you think that FAQ makes me come off as patronizing?

I wouldn't be as harsh as that, but "what is a web server" feels very out of place in how basic it is, and the final one that basically just says "read the docs" maybe also doesn't quite land.

Re: Ferron – A fast, memory-safe web server written in Rust

#40

Every web server claims to be fast, so I wonder how they define that. As someone who has written their own supposedly fast web server I only want configuration simplicity. Most web servers are unnecessarily far too complicated. In a web server here is what I am looking for: * Fast. That is just a matter of streams and pipes. More on this later. That said the language the web server is written in largely irrelevant to…

In Rust all web frameworks are fast because they all use the same stack tokio + hyper.
Post reply on HN