h20 is nice, but I believe it requires libuv. libuv is a massive stack with LOTS of abstractions on top of abstractions that are sorta atypical of C libraries. If your code crashes because some assert in libuv fired, good luck navigating through the "typedef city" that libuv is. I wrote a little server built on top of libuv but I could never really get it working right on Windows (which is a platform that libuv supports fairly well I think). In the end I ended up abandoning libuv, and all the that abstraction, and just requiring Linux or BSD by targeting epoll/kqueue directly.