kwebio/kweb-core:面向后端的轻量级 Kotlin Web 框架


现代网站至少由两个紧密耦合 的组件组成,一个在浏览器中运行,另一个在服务器上。它们通常用不同的编程语言编写,并且必须通过 HTTP(S) 连接相互通信。
Kweb 的目标是消除这种服务器/浏览器分离,这样您就可以专注于构建您的网站或用户界面,而不是管道。

Kweb 是 Web 浏览器 DOM 的远程接口。您可以创建和操作 DOM 元素,并侦听和处理 DOM 事件。
Kweb 有一个状态系统,可以让您轻松地 将实时数据库中的值绑定到 DOM 元素。这样,当数据库更改时,元素会自动更新。
这种方法的一个常见问题是,如果它是服务器驱动的,用户界面可能会感觉迟钝。Kweb 通过 向浏览器预加载 指令来解决这个问题。这样,指令会立即在浏览器事件上执行,而无需服务器往返。
Kweb 建立在Ktor框架之上,该框架处理 HTTP、HTTPS 和 WebSocket 传输。

import kweb.*
import kweb.InputType.text
import kweb.state.KVar


fun main() {
    Kweb(port = 16097) {
        doc.body {
            val name = KVar("")
            div {
                h1().text(
"Enter Your Name")
                input(type = text).value = name
            }
            div {
                span().text(name.map {
"Hello, $it" })
            }
        }
    }
}

项目点击标题