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.