http4k is a lightweight but fully-featured HTTP toolkit written in pure Kotlin that enables the serving and consuming of HTTP services in a functional and consistent way. http4k applications are just Kotlin functions. http4k consists of a lightweight core library, http4k-core, providing a base HTTP implementation and Server/Client implementations based on the JDK classes. Further servers, clients, serverless, templating, websockets capabilities are then implemented in add-on modules. http4k apps can be simply mounted into a running Server, Serverless platform, or compiled to GraalVM and run as a super-lightweight binary. Apart the from Kotlin StdLib, http4k-core module has ZERO dependencies and weighs in at ~1mb. Add-on modules only have dependencies required for specific implementation.
Features
- Application as a Function
- All entities in the library are immutable unless their function explicitly disallows this
- Dependency-lite
- Test individual endpoints
- Apps are completely portable across deployment platform in either a Server-based, Serverless or Native binaries
- Testability Built by TDD enthusiasts, so supports super-easy mechanisms for both in-memory and port-based testing