ServerGo 是一套基於 io_oi v2 與 DualCache-FF 架構的超高效能資料庫與清算節點。專為超低延遲的資料存取與可靠的非同步持久化設計,能作為 CreditGo 等邊緣結算網路的雲端大腦。
Note
雖然 ServerGo 的設計目標是透過 io_oi 協定成為去中心化網路的一部分,但目前的開發與基準測試重點在於 單節點效能 (Single-node performance) 與 本地優先一致性 (Local-first consistency)。
為完美支援 Cloud-Native 與業務擴展,ServerGo 將底層邏輯徹底解耦為符合 AWS 等大廠標準的「四本柱」管理套件,將基礎設施與業務邏輯完美分離:
- 運算層 (Compute):獨立接管 Thread-per-core 的調度與 TCP Worker 綁定,支援高併發運算。
- 儲存層 (Storage):負責
cdDB快照備份與靜態檔案 (HTML/JS) 的硬碟 I/O,與業務記憶體完全隔離。 - 網路層 (Networking):接管 HTTP Gateway、P2P 憑證、以及 SSH 管理後台,隨時支援新通訊協議。
- 資料庫層 (Database):抽象化
PureCache與TieredStore,對底層共識引擎io_oi實現完美的依賴反轉 (IoC)。
為了幫助您快速掌握專案結構,我們將文件與目錄整理如下:
src/:ServerGo 核心原始碼,包含緩衝區、資料持久化、網路閘道與快取架構。benches/:高效能基準測試 (Criterion),包含處理能力與 I/O 壓測。deploy/:Docker Compose 與容器化部署腳本。tests/:各項單元測試與整合測試。tools/:輔助腳本與開發者工具 (如壓力測試器、授權更新腳本等)。
歷史架構升級紀錄、效能報告與進階教學皆妥善歸檔於此:
- ⚡️ 效能指標 (PERF.md):詳細硬體與延遲基準報告。
- 📄 系統規格 (SPEC.md):系統架構設計與演算法說明。
- 🧪 測試案例 (test_case.md):測試覆蓋率與情境。
- 🛡️ 審計報告 (test_bench_audit.md):安全性與基準測試查核報告。
- 📈 優化歷史 (servergo_improvements.md):歷次核心改版優化歷程。
- 💉 路由熱更新教學 (HTTP_INJECT_TUTORIAL.md):如何透過 RESP 協定即時掛載靜態網頁與 API 路由。
為確保跨平台的安全性與效能最佳化,本專案全面棄用預先編譯的二進位包 (Pre-compiled binaries)。請按照以下層級進行源碼編譯:
確保您的系統已經安裝了 Rust 開發環境:
# 安裝 Rust (若尚未安裝)
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
# 重新載入環境變數
source $HOME/.cargo/envServerGo 已經全面進化為「底層引擎 Crate」。我們不提供編譯好的 Docker Image,而是讓您將 ServerGo 嵌入到自己的專案中,享受編譯期最佳化與物理核心綁定:
在您的 Cargo.toml 加入:
[dependencies]
ServerGo = { git = "<your_servergo_repo_url>" }在您的 main.rs 中,只需撰寫 10 行程式碼,即可啟動這個極限效能的分散式神經網關:
extern crate ServerGo as server_go;
use server_go::{ServerGo, UnionCodeGateway};
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
tracing_subscriber::fmt::init();
// 1. 動態注入您的業務指令字典檔
let intent_gateway = UnionCodeGateway::builder()
.with_dictionary_file("data/dictionary.txt")
.enable_hot_reload(true)
.build();
// 2. 啟動伺服器,綁定物理核心以達到 RuinsOS 級別的 88ns 延遲
ServerGo::builder()
.port(3000)
// .bind_to_core(1) // 生產環境專用
.with_gateway(intent_gateway)
.start()
.await
}然後執行 cargo run --release 即可啟動伺服器。
ServerGo 完美相容 Redis (RESP) 協定,您可以使用標準的 redis-cli 進行連線測試:
redis-cli -p 6379 SET mykey "Hello ServerGo"
redis-cli -p 6379 GET mykey前端或業務層開發者不需要學習 RESP 協定,ServerGo 內建 HTTP Gateway 進行代理:
# 透過 HTTP POST 直接執行 UnionCode Intent
curl -X POST http://localhost:8080/api/execute -d "ORDER_ITEM_AMERICANO_HOT"- DualCache-FF L1/L2: 雙層快取架構,透過 Wait-Free
GlobalHotIndex(arc-swap) 實現微秒級的無鎖讀取。 - Zero-Copy Architecture: 完全繞過 Heap Allocation 與 Mutex 鎖,在 Apple Silicon 上的讀取延遲低至 ~127 ns。
- Tiered Columnar Storage: 透過
cdDB的非同步 WAL 安全寫入磁碟,絕不阻塞熱點快取的讀取路徑。 - RESP 相容: 無縫融入現有架構,支援標準 Redis 客戶端的
GET,SET,PING, 與INFO。 - OS Sandboxing: 在 Linux 環境中自動利用
seccomp進行系統呼叫沙盒隔離,提供縱深防禦。 - 動態 HTTP 閘道: 零停機的 Axum 路由器,支援靜態檔案服務 (
file://)、反向代理 (http://) 與 DevOps 熱更新掛載 (web:config)。