

Framework เซิร์ฟเวอร์ที่มีน้ำหนักเบายืดหยุ่นและทันสมัยเขียนด้วย Swift
Hummingbird เป็นเฟรมเวิร์กเว็บแอปพลิเคชันที่มีน้ำหนักเบาและยืดหยุ่นซึ่งทำงานอยู่ด้านบนของการใช้งานเซิร์ฟเวอร์ที่ใช้ 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 : การสนับสนุน TLSHummingbirdHTTP2 : การสนับสนุนการอัพเกรด http2HummingbirdTesting : ฟังก์ชั่นผู้ช่วยสำหรับการทดสอบโครงการ 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! โปรดอ่านแนวทางการสนับสนุนของเราก่อนที่จะส่งคำขอดึง
Hummingbird เปิดตัวภายใต้ใบอนุญาต Apache 2.0