ITADN
README.md
以下内容由 AI 翻译,如有问题请点此提交 issue 反馈

轻量级、灵活、现代的 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 的核心设计力求精简,额外功能通过扩展提供。以下是一些官方扩展:

内置扩展

  • 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: [
        .product(name: "Hummingbird", package: "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 --package hummingbird

贡献

我们欢迎所有对 Hummingbird 的贡献!

  • 提交 Issue 以提出功能请求或报告 bug 或问题。
  • 提交 pull requests 以帮助推动开发。
  • 如果您发现安全漏洞,请通过 GitHub 提交报告。

请在为项目做出贡献之前阅读我们的 贡献指南

赞助商

通过成为 赞助商 来支持 Hummingbird 的开发。

支持者

通过成为 支持者 来支持 Hummingbird 的开发。

User avatar: Stevenson MichelUser avatar: Matt MassicotteUser avatar: Moritz LangUser avatar: Zane EndersUser avatar: Honza Dvorsky