Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Story.md

maoxiaoyue edited this page May 15, 2026 · 4 revisions

為何我們需要另一個 Go Web 框架?HypGo 的誕生

HypGo 的名稱來自於 Hyper + Go

在 Go 的世界裡,我們從不缺乏高效能的 Web 框架。從 Gin 的快速路由到 Echo 的可擴展性。然而,我發現了一些反覆出現的問題,這些問題在現在的AI時代,不僅拖慢了開發速度,更在專案後期埋下了技術債。

我相信,一個現代化的框架不應只是「能用」,更應該在專案的設計與構思階段就引導開發者走向更健壯、更具前瞻性的架構。這就是我打造 HypGo 的原因。

HypGo 旨在解決我們觀察到的四大核心問題:

  1. 現代網路協定的缺席:HTTP/2 與 HTTP/3 支援在所見的範圍中,幾乎缺席。
  2. 「輕量級」的選擇悖論:框架本身很小,但將整合其他功能的重擔完全拋給了開發者。
  3. 支離破碎的整合體驗:各個模組像是一盤散沙,而非一個緊密協作的整體。
  4. AI 時代的協作空白:現有框架從未考慮如何讓 AI 工具真正理解你的專案。

1. 原生支援 HTTP/2 與 HTTP/3:不再亡羊補牢

專案開發了數個月,效能測試時才發現,要充分利用現代瀏覽器的多路復用優勢,必須啟用 HTTP/2;或者,為了追求更低的延遲,團隊決定升級到 HTTP/3。這時,您才意識到手邊的框架需要一連串複雜的配置,甚至引入第三方 package 來啟動 http.Server 或 quic-go。

這種「後期追加」的模式充滿風險。它不僅耗時,還可能與現有架構產生衝突。

我認為,對現代網路協定的支援應該是框架的內建能力,而非一個需要額外安裝的插件。在 HypGo 中,切換協議只需修改設定檔的一行:

server:
 protocol: "http3" # http1 / http2 / http3,從第一天起就可以選

複雜的底層處理封裝好,從專案第一天起,就能自信地採用最先進的網路技術,而不是等到出問題時才來補救。


2. AI 時代的協作空白:讓 AI 真正理解你的專案

這是我在 2025 年底到2026年,OpenClaw出現,深刻感受到的一個問題,使用AI的Coding是不會回頭,這也促使 HypGo 走向 v0.8 的核心動力(0.7之前並沒有人機協作)。

AI 工具(Copilot、Cursor、Codex、Gemini CLI)已經成為現代開發者的日常夥伴。但它們面臨一個根本困境:它們不知道你的專案在做什麼

幻覺率、debug找不到問題癥結、改版的時候需求在哪? 改第二個bug後...第一個bug又再出現,這些問題變成Vibe Coding的開發者的日常。

每次對話,AI 都需要重新閱讀數千行程式碼才能理解 API 合約;它看不出哪些 package 是共享的、改動它會影響多少測試;它不知道哪個路由接受什麼輸入、回傳什麼格式。開發者不得不花大量 tokens 反覆「教」AI 基礎知識,而不是讓它真正幫你解決問題。

HypGo 的答案:Schema-first + Manifest + AI Rules

Schema-first 路由讓每個 API 合約直接附著在路由上:

r.Schema(schema.Route{
 Method: "POST",
 Path: "/api/users",
 Summary: "建立使用者",
 Input: CreateUserRequest{},
 Output: UserResponse{},
}).Handle(createUserHandler)
// 非 REST 協議也一樣
schema.RegisterGRPC("UserService/CreateUser", "建立使用者", Req{}, Resp{})
schema.RegisterWebSocket("join_room", "加入房間", JoinReq{}, JoinResp{})

Project Manifest 在伺服器啟動時自動生成 .hyp/context.yaml,將整個專案的路由、型別、設定壓縮為約 500 tokens(傳統方式需要 5,000 tokens)。AI 讀一個檔案,就能理解所有 API。

Contract Testing 讓 AI 生成的 handler 立刻可以驗證:

contract.TestAll(t, router) // 一行,自動測試所有 schema 路由的 Input/Output

hyp CLI 工具群讓 AI 協作進入日常流程:

hyp context # 產出 .hyp/context.yaml(AI 的專案地圖)
hyp context --llm config/llm.yaml # 搭配本地 Ollama 或 API 做 LLM 智慧增強
hyp ai-rules # 為 Copilot、Cursor、Codex、Gemini、Windsurf 產出設定檔
hyp chkcomment ./... # 檢查 @ai: 標準化註解完整性
hyp impact pkg/errors/catalog.go # 改動前先確認影響範圍
hyp migrate diff # 從 model struct 自動產生 SQL migration

這形成了一個完整的閉環:AI 理解 → 生成 → 驗證 → 再理解(升級、改版)


3. 打造無縫的開發體驗

整合度不足是前兩個問題的必然結果。當您自行拼湊日誌、路由、ORM 和設定模組時,它們之間往往是脫節的:

  • 您的 ORM 無法感知到路由層的請求超時。
  • 您的日誌模組不知道目前的使用者是誰。
  • 您的設定變更後,無法平滑地通知到應用程式的各個角落。

這導致了大量的樣板代碼(Boilerplate)和不一致的行為。

HypGo 的核心設計理念就是深度整合。

  • 統一的 Context:貫穿請求整個生命週期,從中介層、處理函式到資料庫操作,輕易傳遞資料、控制超時與取消訊號。
  • GC 優化:sync.Pool 管理 Context、Params、WebSocket broadcast slice 與 RouteCache item,在 100k+ QPS 下大幅降低 GC 壓力。
  • 安全中介層:Rate Limiter、Circuit Breaker、JWT、CSRF 均使用 crypto/rand,RateLimiter 自動清理過期 entry 防止記憶體洩漏。

最終,得到的不只是一堆功能的集合,而是一個高內聚、低耦合的應用程式平台。


4. 告別選擇困難:從「輕量」到「恰到好處」

許多框架以「輕量」為傲,這在初期確實很有吸引力。但「輕量」往往意味著「簡單」。當您需要處理資料庫、設定檔、驗證、日誌等實際業務需求時,您會立刻陷入一個「選擇的海洋」:

  • 日誌要用 logrus、zap 還是 zerolog?
  • ORM 該選 GORM、sqlx 還是 ent?它們如何與框架的 Context 互動?
  • 設定檔管理用 Viper 還是原生的 flag?如何優雅地載入到應用中?

這種模式將架構整合的重責大任完全推給了開發者。開發者不僅要花費大量時間研究、評估,還要親自黏合這些來自不同社群的組件,並祈禱它們能和諧共處。

HypGo 選擇了一條不同的路:提供經過挑選且與AI深度整合的推薦方案。

  • 日誌:內建結構化日誌,自動與請求生命週期綁定,每條日誌都包含 Request-ID。
  • 設定:強大的設定模組,能從檔案、環境變數讀取設定,並以依賴注入的方式取用。
  • 資料庫:與 Bun ORM 無縫整合,從 Context 中直接獲取 *bun.DB 實例,自動管理交易;同時內建 Redis/KeyDB 高階封裝與 Cassandra 5.0 完整驅動。
  • 多協議 Schema:REST、gRPC、Bot、MCP、WebSocket、CLI 六種協議,統一在一個 Schema Registry 中管理,一份 Manifest 涵蓋所有 API。

您可以選擇使用這些內建方案,享受開箱即用的便利;當然,如果有特殊需求,也可以輕易地替換。我們的目標是消除無謂的決策疲勞,讓您專注於商業邏輯。


從起點就現代化

一個優秀的框架應該像一位經驗豐富的架構師,在專案之初就為您規劃好一條通往成功的大道。

HypGo 的使命,是讓每一位 Gopher 都能輕鬆、自信地從設計與構思階段就採用更好、更現代化的方案——無論是原生 HTTP/3、讀寫分離的資料庫層、還是與 AI 工具的深度協作,打造出真正面向未來的應用程式。

我們誠摯地邀請您試用 HypGo,並加入我們的社群。無論是提交一個 Issue、發起一個 Pull Request,或僅僅是給我們一顆星星,都是對我們最大的支持!

HypGo v0.8.5 · HTTP/1.1 + HTTP/2 + HTTP/3 · AI-Human Collaborative Go Web Framework
go get github.com/maoxiaoyue/hypgo

HypGo

繁體中文 | English


中文文件

設計文件

套件

AI 協作工具鏈

CLI 命令


English Docs

Design Docs

Packages

AI Collaboration Toolchain

CLI Commands

Clone this wiki locally

AltStyle によって変換されたページ (->オリジナル) /