
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. For example, here's a simple echo server:
val app: HttpHandler = { request: Request -> Response(OK).body(request.body) }
val server = app.asServer(SunHttp(8000)).start()
You can read about the rationale and ethos of http4k here
The http4k platform consists of the following main ecosystems, all released under a single version:
- http4k-core consists of a lightweight core library 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.
- http4k-connect is a lightweight API Client toolkit which includes libraries for connecting to popular third-party cloud services and AI backends using http4k compatible APIs, along with Fake implementations for usage during local testing.
Sounds cool! Where can I find out more?
You can find out all about the project on the http4k site.
Installation
dependencies {
// install the platform...
implementation(platform("org.http4k:http4k-bom:<LATEST_VERSION>"))
// ...then choose any moduless but at least the core
implementation("org.http4k:http4k-core")
}
Acknowledgments
- Dan Bodart's utterlyidle
- Ivan Moore for pairing on the original hackday project - Barely Magical.
- You can see the amazing people and companies who have helped us to make http4k here.