用 Swift 编写的轻量级、灵活、现代的服务器框架。
Hummingbird 是一个轻量级、灵活的现代 Web 应用程序框架,它运行在基于 SwiftNIO 的服务器实现之上。 它的设计旨在需要最少的依赖项。
它提供了一个路由器,用于将不同的端点定向到其处理程序;中间件,用于在请求到达处理程序之前处理请求和处理返回的响应;请求/响应的自定义编码/解码;TLS 和 HTTP2。
import Hummingbird
// create router and add a single GET /hello route
let router = Router()
router.get("hello") { request, _ -> String in
return "Hello"
}
// create application using router
let app = Application(
router: router,
configuration: .init(address: .hostname("127.0.0.1", port: 8080))
)
// run hummingbird application
try await app.runService()
Hummingbird 的核心设计为最小化,并通过扩展提供其他功能。 以下是一些官方扩展
HummingbirdRouter
: 使用结果构建器的替代路由器HummingbirdTLS
: TLS 支持HummingbirdHTTP2
: HTTP2 升级支持HummingbirdTesting
: 用于测试 Hummingbird 项目的辅助函数以下扩展可在单独的存储库中找到
您可以在这里找到 Hummingbird 的参考文档和用户指南。hummingbird-examples 存储库包含许多库的不同用法的示例。
将以下内容添加到您的 Package.swift
文件中
dependencies: [
.package(url: "https://github.com/hummingbird-project/hummingbird.git", from: "2.0.0")
],
targets: [
.executableTarget(
name: "MyApp",
dependencies: [
.target(name: "Hummingbird"),
]),
]
或者,使用 SwiftPM 在您的包上运行以下命令,将 MyApp
替换为您的目标名称
swift package add-dependency https://github.com/hummingbird-project/hummingbird.git --from 2.0.0
swift package add-target-dependency Hummingbird MyApp
我们欢迎对 Hummingbird 的贡献! 在提交 pull request 之前,请阅读我们的贡献指南。
Hummingbird 在 Apache 2.0 许可证下发布。