DBDelve
Dive deep into your data. A fast, native, multi-engine database client written in Rust. Free and open source, no telemetry.
翻译准备中
个人 GitHub 账号下公开仓库的所有者可以登录并验证所有权,自行管理介绍,无需管理员批准。
登录并生成验证文件,在 30 分钟内将其提交到此仓库的默认分支。其他分支或分叉仓库中的文件无效。然后在下方检查文件,即可无需管理员批准直接管理项目。请保留文件以维持管理权限。
如需登录,将前往登录页面。登录后请回到此处,再次点击所选的验证按钮。
在项目文件夹中运行 /nomorevibe verify,即可验证所有权并自行管理介绍。
一分钟完成验证Fast and simple webserver for Kotlin.
翻译准备中
正在加载完整 README。
查看完整 README ↗genhttp-kt is a lightweight, modular web server for Kotlin with a strong focus on developer experience. It allows developers to quickly create web services on the JVM and concentrate on the functionality rather than on configuration files or complex concepts. genhttp-kt is the Kotlin port of GenHTTP (see About the Port).
Website and documentation: genhttp.org/kotlin
genhttp-kt requires JDK 25 or newer. Add a dependency on genhttp-full to your project and spin off a new host:
// build.gradle.kts
dependencies {
implementation("org.genhttp:genhttp-full:11.2.0.0")
}
import org.genhttp.engine.internal.Host
import org.genhttp.modules.apibrowsing.*
import org.genhttp.modules.functional.*
import org.genhttp.modules.layouting.*
import org.genhttp.modules.openapi.*
import org.genhttp.modules.practices.*
suspend fun main() {
// use a handler of your choice (see the samples below)
val api = Inline.create()
.get { a: Int, b: Int -> a + b }
val app = Layout.create()
.add(api)
.addOpenApi()
.addScalar()
Host.create()
.handler(app)
.defaults()
.run() // or .start() to return immediately
}
Running this snippet will provide the following endpoints:
| Endpoint | Description |
|---|---|
| http://localhost:8080/?a=1&b=2 | Serves the API, answering requests by calculating the sum of two query arguments. |
| http://localhost:8080/openapi.json | Serves the automatically generated Open API specification of the API. |
| http://localhost:8080/scalar/ | Serves a graphical viewer of the API, using Scalar. |
If you only need the engine and the basic modules (IO, layouting and best practices), depend on genhttp-core instead
and add the modules you need individually (genhttp-modules-<name>, see the
list of modules). To run on the Netty engine, depend on
genhttp-full-netty or genhttp-core-netty and import org.genhttp.engine.netty.Host (see Engines).
The documentation describes every framework, handler, concern and concept of genhttp-kt, with Kotlin samples that are compiled against the release they describe:
It is the documentation of GenHTTP, ported page by page, and kept in sync with GenHTTP's documentation and with genhttp-kt the same way the port is (see SYNC.md).
The playground project provides a quick starting point to view sample code. See the documentation for all available capabilities.
genhttp-kt runs on different engines that can simply be switched by changing a single dependency and the import of the
Host. Engines are tested to be compatible with all modules, so you can switch the engine without any further
adjustments.
| Engine | Protocols | Performance | Use Cases |
|---|---|---|---|
| Internal | 1.1 | Embedding; web applications behind a reverse proxy; blocking handlers | |
| Netty | 1.1 | High performance web applications on Linux via epoll or io_uring |
The internal engine (genhttp-full, genhttp-core, org.genhttp.engine.internal.Host) serves every connection on
virtual threads, so handlers may block. The Netty engine (genhttp-full-netty, genhttp-core-netty,
org.genhttp.engine.netty.Host) is the counterpart of GenHTTP's ioxide engine: one event loop per CPU core serves its
connections from start to finish, including websockets and TLS via OpenSSL. Handlers run on the loop and must suspend
rather than block - move blocking calls such as JDBC to withContext(Dispatchers.IO).
According to HTTP Arena, genhttp-kt is among the fastest Kotlin web servers for HTTP/1.1: with the Netty engine it ranks second of all the Java and Kotlin frameworks without tuning, and the internal engine is 1.4 times faster than Ktor and 2.6 times faster than Spring Boot (results of October 24, 2026). The features page shows the full comparison.
If you encounter issues implementing your application, feel free to join the GenHTTP Discord community to get help. Issues specific to genhttp-kt can be reported in this repository.
To build the server from source, clone this repository and run the playground project:
git clone https://github.com/Kaliumhexacyanoferrat/genhttp-kt.git
cd genhttp-kt
./gradlew :playground:run
This will build the playground project with all the server dependencies and launch the server process on port 8080.
genhttp-kt is an automated port of GenHTTP, generated and maintained by Claude as a proof of concept: can a framework be kept in sync across ecosystems by agents? GenHTTP stays the source of truth and genhttp-kt follows it commit by commit. The public API and behavior mirror GenHTTP, expressed in idiomatic Kotlin (coroutines, NIO and virtual threads). The documentation of genhttp-kt is the documentation of GenHTTP ported to Kotlin, so samples written for GenHTTP translate mechanically (Coming from GenHTTP).
Versions follow GenHTTP: 11.2.0.0 is based on GenHTTP 11.2.0, the last component counts port-only releases. Features
and behavioral changes are contributed to GenHTTP first and reach genhttp-kt with the next sync (see
CONTRIBUTING.md).
docs/PORT.md describes how C# translates to Kotlin, how the engine works, how the port is kept in sync and verified, and where it intentionally differs from GenHTTP.