# nnet 基于 Go 1.25.4 和 gnet 2.9.5 实现的高性能、功能完备的网络库。 ## 特性 - ✅ 多协议支持:TCP、UDP、WebSocket、Unix Domain Socket、TLS、串口等 - ✅ 现代化的路由系统:支持字符串匹配、帧头匹配、帧数据匹配 - ✅ 灵活的中间件系统:全局中间件、路由级中间件 - ✅ 协议版本管理:支持单协议多版本,灵活的版本识别策略 - ✅ 连接管理:连接分组、跨连接操作 - ✅ Session管理:支持内存、文件、Redis等存储策略 - ✅ 内置客户端:支持TCP、UDP、WebSocket等协议 - ✅ 插件系统:可扩展的插件架构 - ✅ 指标监控:Prometheus格式的Metrics - ✅ 健康检查:内置健康检查接口 ## 安装 ```bash go get github.com/noahlann/nnet ``` ## 快速开始 ### 服务器示例 ```go package main import ( "github.com/noahlann/nnet/pkg/nnet" ) func main() { // 创建服务器 server, err := nnet.NewServer(&nnet.Config{ Addr: "tcp://:8080", }) if err != nil { panic(err) } // 注册路由 server.Router().RegisterString("/hello", func(ctx nnet.Context) error { return ctx.Response().WriteString("Hello, nnet!") }) // 启动服务器 if err := server.Start(); err != nil { panic(err) } } ``` ### 客户端示例 ```go package main import ( "github.com/noahlann/nnet/pkg/nnet" "time" "fmt" ) func main() { // 创建客户端 client := nnet.NewClient(&nnet.ClientConfig{ Addr: "tcp://localhost:8080", }) // 连接服务器 if err := client.Connect(); err != nil { panic(err) } // 发送请求 response, err := client.Request([]byte("hello"), 5*time.Second) if err != nil { panic(err) } fmt.Println("Response:", string(response)) } ``` ## 文档 完整的文档知识库位于 [docs/kb/](docs/kb/) 目录。 ### 快速链接 - [知识库索引](docs/kb/README.md) - 完整的文档索引 - [架构设计](docs/kb/design/ARCHITECTURE.md) - 架构设计文档 - [设计方案](docs/kb/design/DESIGN.md) - 完整设计方案 - [需求文档](docs/kb/requirements/REQUIREMENTS.md) - 需求文档 - [代码结构](docs/kb/development/CODE_STRUCTURE.md) - 代码结构说明 - [项目状态](docs/kb/status/PROJECT_STATUS.md) - 项目状态文档 ### 用户指南 - [路由系统示例](docs/kb/user-guide/ROUTER_EXAMPLES.md) - 路由系统详尽示例 - [协议帧说明](docs/kb/user-guide/PROTOCOL_FRAME_EXPLANATION.md) - 协议帧头字段概念详解 - [客户端连接池](docs/kb/user-guide/CLIENT_POOL.md) - 客户端连接池使用指南 - [多仓库发布](docs/kb/user-guide/MULTI_REPO_SETUP.md) - 多仓库发布指南 - [域名配置](docs/kb/user-guide/DOMAIN_SETUP.md) - 域名配置指南(已弃用) ## 项目结构 ``` nnet/ ├── cmd/ # 命令行工具和示例 ├── internal/ # 内部实现 ├── pkg/ # 对外暴露的包 ├── examples/ # 示例代码 ├── test/ # 测试代码 └── docs/ # 文档 ``` ## 开发状态 🚧 **开发中** - 项目正在积极开发中,API可能会有变化。 ## 贡献 欢迎贡献!请查看 [CONTRIBUTING.md](CONTRIBUTING.md) 了解详情。 ## 许可证 [MIT License](LICENSE) ## 链接 - **模块路径**: `github.com/noahlann/nnet` - **GitHub**: https://github.com/noahlann/nnet - **Gitee**: https://gitee.com/noahlann/nnet (镜像)