/netcore-go

NetCore-Go 是一个功能丰富、高性能的 Go 语言网络库,提供了完整的网络编程解决方案,包括 TCP/UDP 服务器、WebSocket、HTTP 服务器、RPC、gRPC、KCP 协议支持,以及服务发现、负载均衡、配置管理、日志系统和监控指标等企业级功能。

Primary LanguageGoOtherNOASSERTION

🌐 NetCore-Go

高性能Go网络库 | 多协议支持 | 企业级网络解决方案

Go Version Version License Build Coverage Performance Protocols

支持协议:HTTP/1.1/2/3 • gRPC • WebSocket • TCP • UDP • KCP • Long Polling

🌐 协议支持

NetCore-Go 是一个专业的Go网络库,提供完整的网络协议栈支持:

🌍 HTTP协议栈

协议 特性 性能
HTTP/1.1 持久连接、管道化、分块传输 50k+ QPS
HTTP/2 多路复用、服务器推送、头部压缩 80k+ QPS
HTTP/3 QUIC传输、0-RTT连接、内置加密 100k+ QPS

🔗 RPC协议

协议 特性 应用场景
gRPC 双向流式传输、负载均衡、认证授权 微服务通信
自定义RPC 二进制编码、零拷贝优化、连接池 高性能内部调用

💬 实时通信

协议 特性 延迟
WebSocket 全双工通信、心跳检测、自动重连 < 1ms
Long Polling HTTP长连接、超时控制、自动降级 < 5ms

🚀 传输协议

协议 特性 吞吐量
TCP 可靠传输、连接复用、流量控制 1GB/s+
UDP 无连接传输、组播支持、低延迟 10GB/s+
KCP 可靠UDP、快速重传、游戏优化 5GB/s+

🏗️ 核心模块

🌐 网络核心

模块 功能 特性
core 网络抽象层 统一接口、事件驱动、连接管理
http/http2/http3 HTTP协议实现 完整协议栈、自动协商、性能优化
grpc gRPC服务器/客户端 流式传输、负载均衡、拦截器
websocket WebSocket实现 双向通信、心跳检测、消息路由
tcp/udp 原生协议支持 高性能传输、连接池、零拷贝
kcp KCP协议实现 可靠UDP、快速重传、拥塞控制
rpc 自定义RPC框架 二进制协议、编解码器、注册中心
pool 连接池管理 智能扩缩、健康检查、负载均衡
loadbalancer 负载均衡器 多种算法、权重分配、故障转移
protocol 协议协商 自动检测、版本兼容、降级策略

🔒 安全模块

模块 功能 支持协议
security 认证授权 JWT、OAuth2、RBAC、API密钥
tls 传输加密 TLS 1.2/1.3、证书管理、自动轮换
audit 安全审计 访问日志、行为分析、合规报告
ddos 攻击防护 智能限流、IP黑名单、流量分析

📊 监控模块

模块 功能 集成
metrics 性能指标 Prometheus、Grafana、自定义指标
tracing 链路追踪 Jaeger、Zipkin、OpenTelemetry
health 健康检查 K8s Probe、自定义检查、服务发现
logger 日志系统 结构化日志、轮转压缩、采样控制
alert 告警系统 智能告警、多渠道通知、自动恢复

🔧 中间件系统

模块 功能 特性
middleware 中间件管理 链式调用、热插拔、配置驱动
jwt JWT认证 令牌验证、权限控制、自动续期
ratelimit 限流控制 令牌桶、滑动窗口、分布式限流
circuitbreaker 熔断器 快速失败、自动恢复、状态监控
cache 缓存中间件 内存缓存、Redis集成、缓存策略
openapi API文档 Swagger UI、参数验证、代码生成

🗄️ 数据管理

模块 功能 支持
database 数据库抽象 PostgreSQL、MySQL、MongoDB、Redis
pool 连接池 智能扩缩、事务管理、读写分离
queue 消息队列 内存队列、Redis队列、生产者消费者

🛠️ 开发工具

模块 功能 特性
discovery 服务发现 Consul、etcd、Kubernetes、ServiceMesh
graceful 优雅关闭 信号处理、连接排空、资源清理
performance 性能优化 零拷贝、内存管理、协程池
testing 测试框架 单元测试、集成测试、负载测试

🚀 快速开始

📋 环境要求

  • Go 1.21+
  • 支持的操作系统:Linux, macOS, Windows

⚡ 安装

go get github.com/phuhao00/netcore-go@v1.0.1

📁 示例程序

项目提供了丰富的示例程序,帮助您快速上手:

🌐 网络服务示例

示例 功能 位置
HTTP服务器 HTTP/1.1服务器实现 examples/http/server/
TCP服务器/客户端 TCP通信示例 examples/tcp/server/, examples/tcp/client/
UDP服务器/客户端 UDP通信示例 examples/udp/server/, examples/udp/client/
WebSocket服务器 WebSocket实时通信 examples/websocket/
gRPC服务器/客户端 gRPC微服务通信 examples/grpc/server/, examples/grpc/client/
KCP服务器/客户端 KCP可靠UDP传输 examples/kcp/server/, examples/kcp/client/
RPC服务器/客户端 自定义RPC框架 examples/rpc/server/, examples/rpc/client/

🏗️ 高级功能示例

示例 功能 位置
负载均衡器 多种负载均衡算法 examples/loadbalancer/
游戏服务器 实时游戏服务器 examples/gameserver/
聊天室 多人聊天应用 examples/chatroom/
网关服务 API网关实现 examples/gateway/
高级服务器 企业级服务器配置 examples/advanced/
HTTP/3服务器 HTTP/3协议支持 examples/http3/

📺 B站专栏

Bilibili

🎯 欢迎访问我的B站专栏进行技术讨论和交流

  • 💡 分享NetCore-Go使用经验
  • 🔧 讨论网络编程最佳实践
  • 🤝 与其他开发者交流心得

👉 点击进入专栏讨论

☕ 赞助支持

💝 感谢每一位支持者的贡献,让NetCore-Go变得更好! 如果这个项目对您有帮助,欢迎请作者喝一杯咖啡!您的支持是我们持续改进的动力。 请作者喝咖啡