#web-server #web-framework #web-apps #web-application #web #server-framework

库恩

一个前瞻性的快速Web服务器,高效地满足您的需求。

5个版本 (3个重大变更)

0.6.1 2024年2月11日
0.6.0 2024年2月4日
0.5.0 2022年8月29日
0.4.1 2022年5月26日
0.0.0 2021年3月31日

#223 in HTTP服务器

每月39次下载
6 软件包中使用 (5个直接使用)

Apache-2.0GPL-2.0-or-later

560KB
11K SLoC

crates.io version lines of code license CI status open issues dependency status commit activity

库恩

一个前瞻性的快速Web服务器,旨在高效地满足 您的 需求。

库恩是一个 rusty开源,可扩展的Web应用程序框架,具有 原生异步零停机时间;以及 安全 & 快速默认设置

库恩内置电池(可选默认设置),支持 自动HTTPS证书HTTP/3,io_uring无处不在,反向代理,自动HTTP/2推送,内存缓存(适当的缓存失效),由 简单的CLI 提供服务器通信,并通过Markdown和 Chute 实现轻松创建网站。

如果您正在寻找一个 可执行文件 来运行您的Web服务器,请参阅 Mölla。使用Mölla,您可以配置您的宿主,添加搜索引擎,身份验证以及其他库恩生态系统的部分。更多信息可以在 网站上 找到。

查看 路线图 或访问 我们的网站 获取更多信息。

当前状态

有一个稳定的API可用,该软件包位于 crates.io。您可以在 网上 查看最新文档。

当使用Mölla时,您可以访问Kvarn的所有扩展和大部分功能。如果您需要开发自定义扩展(例如icelk.dev上的这些扩展),您需要自行编译Kvarn。幸运的是,Mölla使添加自定义扩展变得容易

要使用最新和最好的版本,可以将Kvarn作为git依赖项添加,尽管建议使用最新版本。

[dependencies]
kvarn = { git = "https://github.com/Icelk/kvarn" }

依赖项

为了提高安全性、构建时间、可靠性和速度,我尽量减少使用依赖项。

两个主要依赖项是tokio(异步网络、文件访问和扩展的异步运行时)和rustls(用于加密,如果您想运行不安全的(通常是本地的)Web服务器,则为可选)。默认启用brotliflate2以提供压缩,但可以关闭。 h2提供可选(但强烈推荐)的HTTP/2协议支持。

更多详细信息,请参阅kvarn.org

部署到生产环境

请参阅sample.service,了解如何配置systemd使用kvarnctl来管理Kvarn。

现在,您可以使用systemctl --user reload kvarn或类似命令重新加载服务器,如果您已更改配置或重新编译(如果需要)。这确保了(在Unix上无停机时间。甚至不到一毫秒。

安装

Mölla是开始使用Kvarn的推荐方式。您可以在发布页面下载它和其他Kvarn工具(kvarnctlchute)的Linux和macOS版本。

对于Linux的Kvarn chute下载,请在此处下载顶部作业中的工件。

kvarnctl也作为CI构建提供。

文档

主分支的文档可以在doc.kvarn.org找到。

要使用有关哪些cargo功能启用代码的信息来记录,请将环境变量RUSTDOCFLAGS设置为--cfg docsrs(例如,在Fish中set -x RUSTDOCFLAGS --cfg docsrs),然后运行cargo +nightly doc

变更日志

请参阅变更日志

贡献

此库以及此存储库中的所有其他子项目均在Apache License 2.0下分发。因此,所有贡献也必须如此。

除非明确说明,否则所有图像和徽标的所有权均受保留。如果您合理地给予信用,则可以自由使用它们。我保留随时要求您删除任何使用情况的权利。

依赖项

~9–25MB
~396K SLoC