Hello!
I've just released serverino. It's a small & ready-to-go http/https server.
Every request is processed by a worker running in an isolated process, no fibers/threads, sorry (or thanks?)
I did some tests and the performance sounds good: on a local machine it can handle more than 100_000 reqs/sec for a simple page containing just "hello world!".Of course that's not a good benchmark, if you can help me with other benchmarks it would be much appreciated (a big thanks to Tomáš Chaloupka who did some tests!)
I'm trying to keep it simple and easy to compile. It has no external deps in its base configuration and only one external library (libretls) is required if you need/want to enable https.
For your first project you need just three lines of code as you can see here:
https://github.com/trikko/serverino/
I didn't implement a traditional router for uris as probably many of you expected. I use a different approach. Check out this example: https://github.com/trikko/serverino/#defining-more-than-one-endpoint
This allows you to do some interesting things giving higher or lower priority to each endpoint (for example you can force something to always running first like redirect, logging, checks on login...)
Instead of using a lot of different UDAs to set routing rules, you can simply write them in your endpoint's body and exit from it to pass to the next endpoint.
Please help me testing it, I'm looking forward to receiving your shiny new issues on github.
Dub package: https://code.dlang.org/packages/serverino
Andrea