Servlet containers
Servlet containers
Jetty
β Yes
β Yes (via async I/O)
β Yes
β Yes (with Coroutine-based APIs)
Tomcat
β Yes
β Yes (via async servlets)
β Yes
β οΈ Limited (needs adapters like ktor-server-tomcat
)
Netty (is not a servlet containerβit's an event-driven network application framework that can be used to build non-blocking servers and clients)
β οΈ Not its primary model
β Yes (fully event-driven)
β Yes
β Yes (integrates well with Ktor and coroutines)
Undertow
β Yes
β Yes (reactive streams)
β Yes
β
Yes (used in ktor-server-undertow
)
Clients
RestTemplate
β Yes
β No
β οΈ Limited
Synchronous API, designed for Spring MVC.
WebClient
β οΈ Limited
β Yes
β Yes
Non-blocking, reactive web client from Spring WebFlux.
Ktor
β Yes
β Yes
β Yes
Designed for Kotlin; supports both blocking and non-blocking calls.
OkHttp
β Yes
β Yes
β οΈ Limited
Primarily synchronous but supports asynchronous requests; good for Kotlin coroutines.
Apache HttpClient
β Yes
β οΈ Limited
β οΈ Limited
Synchronous by default; can use Future
for async.
Retrofit
β Yes
β Yes
β Yes
Works with OkHttp, designed for REST APIs; supports coroutines via extensions.
Vert.x Web Client
β No
β Yes
β Yes
Fully non-blocking and designed for asynchronous programming.
Last updated
Was this helpful?