Below are my initial impressions on the Native ver...
# ktor
n
Below are my initial impressions on the Native version of Ktor Server (for the linuxX64 target): 1. Web server starts up extremely quickly (0.0s) 😆 2. After exiting an application using Ktor Server (via Ctrl+c) there is a long delay before the address is freed ☹️ 3. Missing documentation on the dependencies that the Native version of Ktor Server uses (C libs used, what libs are statically/dynamically linked, linker/compiler options used etc) 4. All the text streams (stdout, stderr and stdin) are hijacked by the Web Engine, which makes it impossible to do process forking 5. The learning curve of the Native version of Ktor Server (no manual linking 🎉) is at a similar level to the JVM version 😄 6. Missing Ktor Server versions for the Kotlin Native Linux ARM targets 7. There are some cases where a response from the server should be in a completed state, but ends up in an infinite loop scenario (aka the web page on the client side is taking forever to load) 8. Low memory usage around 8.8 MB for a Hello World type application
🎉 2
e
2 should be true of every compliant TCP implementation https://stackoverflow.com/a/2270357 6 can't happen without kotlinx.coroutines binaries being available for Linux ARM, which they currently aren't https://github.com/Kotlin/kotlinx.coroutines/issues/855
n
In the case of 2. Ktor Server is missing functionality in the API to handle keyboard interrupts, shutdown/restart events, Unix/Linux signals etc.