Excellent article and work on this. Congratulations!
I was wondering if it would be worth pointing out that there is a little bit of a disparity in the abstraction levels of the various versions.
- the ktor and rust implementations are based on the standard routing API built into the libraries.
- the http4k implementation is based on the contract routing DSL instead of the raw routing API built into the core. Since it exists at a higher level of abstraction, there is a performance penalty for using this layer. Of course, you do get the OpenAPI functionality as a trade for this penalty, so YMMV.
I wasn't sure about if you would be accepting tweaks to the code after the fact as it were, but thought I'd just mention it anyway.