用 Swift 编写的轻量级、灵活、现代的服务器框架。

Hummingbird

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

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 许可证下发布。