Hello all, today I wanted to share Mummy, my new multithreaded HTTP + WebSocket server written entirely in Nim.
[GitHub link for Mummy](https://github.com/guzba/mummy) I started writing Mummy because I wanted an alternative to async. There are very good historical reasons for async (refc + threadlocal heaps making multithreaded stuff extra challenging), however ORC / ARC and Nim 2.0 coming very soon have really opened the door to another option: threads. Mummy takes what I think a pretty modern approach to threads and IO. The general model for Mummy goes like this: multiplex socket IO on one thread and dispatch ready-to-go requests to a pool of worker threads. This keeps worker threads far away from client sockets while still enabling the pleasant inline blocking boring Nim code that makes me a very happy programmer. I see enormous value in simple blocking code and would be willing to make some performance sacrifice to have it. It turns out, though, that I don't have to. Mummy is able to outperform AsyncHttpServer, as well as Node and Go. Mummy even outperforms HttpBeast, though [this may be due to a bug](https://github.com/dom96/httpbeast/issues/84). You can confirm the results yourself by looking at the [benchmarks](https://github.com/guzba/mummy#benchmarks), the code behind them, and running them yourself. Mummy basically offers the maximum performance potential while also enabling you to write the simplest code. This is a dream combo. Please check out the [Mummy README](https://github.com/guzba/mummy#readme) if you want to learn more.
