🔥 BlazeWave
高性能、事件驱动的Go WebSocket库
code
Go 1.21+
verified
Apache 2.0
speed
65.3% 覆盖率
stars 核心特性
行业领先性能
3.8×吞吐量提升,2.7×延迟优化
高性能架构
业界领先的高性能WebSocket库
事件驱动
全面的事件系统,支持中间件
生产就绪
RFC 6455合规、压缩支持、健壮的错误处理
开发者友好
简单API、类型安全、广泛测试
跨平台
支持Go 1.21+在所有主要平台上,包括WASM
speed 性能优势
指标 | 标准模式 | 高性能模式 | 提升幅度 |
---|---|---|---|
吞吐量 | 37,077 ops/sec | 82,650 ops/sec | +123% |
延迟 | 32,381 ns | 13,887 ns | -57% |
内存 | 742 B/op | 327 B/op | -56% |
分配次数 | 32 allocs/op | 16 allocs/op | -50% |
核心优势
⚡ 读写0拷贝和读写0GC:零内存拷贝,零GC压力,极致性能优化
🚀 智能缓冲区池:跨连接内存复用,减少GC压力,内存效率提升
🎯 全面事件系统:支持中间件和自定义事件处理,超越基础事件
architecture 架构设计
应用层 (Application)
事件系统
中间件
心跳机制
连接层 (Connection)
零拷贝I/O
缓冲区池
压缩支持
处理层 (Processing)
帧解析
掩码处理
验证机制
基础设施层 (Infrastructure)
缓冲区池
内存复用
GC优化
网络层 (Network Layer)
TCP/WebSocket
TLS支持
连接劫持
code 代码示例
// 服务器示例
package main
import (
“context”
“log”
“net/http”
“github.com/heyehang/blazewave”
)
func main() {
server := blazewave.NewServer()
server.OnTextMessage(func(ctx context.Context, conn *blazewave.Conn, payload []byte) error {
log.Printf(“收到: %s”, string(payload))
return conn.Write(ctx, blazewave.MessageText, payload)
})
http.HandleFunc(“/ws”, func(w http.ResponseWriter, r *http.Request) {
conn, err := server.Accept(w, r)
if err != nil {
log.Printf(“接受连接失败: %v”, err)
return
}
defer conn.Close(blazewave.StatusNormalClosure, “”)
})
log.Fatal(http.ListenAndServe(“:8080”, nil))
}
package main
import (
“context”
“log”
“net/http”
“github.com/heyehang/blazewave”
)
func main() {
server := blazewave.NewServer()
server.OnTextMessage(func(ctx context.Context, conn *blazewave.Conn, payload []byte) error {
log.Printf(“收到: %s”, string(payload))
return conn.Write(ctx, blazewave.MessageText, payload)
})
http.HandleFunc(“/ws”, func(w http.ResponseWriter, r *http.Request) {
conn, err := server.Accept(w, r)
if err != nil {
log.Printf(“接受连接失败: %v”, err)
return
}
defer conn.Close(blazewave.StatusNormalClosure, “”)
})
log.Fatal(http.ListenAndServe(“:8080”, nil))
}
lightbulb 最佳实践
memory
高性能模式
使用自定义缓冲区池和共享timer池,显著提升性能和内存效率。适用于生产环境高并发场景。
event
事件驱动架构
利用全面的事件系统构建实时应用,支持中间件和自定义事件处理,提供灵活的开发体验。
security
生产就绪
遵循RFC 6455标准,提供健壮的错误处理和压缩支持,确保企业级应用的稳定性和安全性。
integration_instructions
参考项目
查看BlazeWave Pulse项目,了解如何构建高性能实时应用的最佳实践和完整实现示例。