It's weird how little qualifies for 'type-safe' nowadays. The templating language is not typesafe for example. The parameters in the request aren't either. Take a look at http://haskell-servant.github.io/ if you want to see what type-safe means.
A key goal of the project is to avoid the use of `Any` anywhere possible, and to move any run time safety checks to compile time.
In any case, I'm not going to consider using any framework that isn't on the first half of this list
https://www.techempower.com/benchmarks/#section=data-r11&hw=...
Many of them are for JVM, but one cool thing about JVM, is that you don't have to use Java (Kotlin is often compared to Swift for example) while still using frameworks written in Java, like Undertow or Rapidoid.