You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
NoahLan 9687b7b2bf first commit. 1 week ago
.cursor/rules first commit. 1 week ago
cmd first commit. 1 week ago
docs/kb first commit. 1 week ago
examples first commit. 1 week ago
internal first commit. 1 week ago
pkg first commit. 1 week ago
test first commit. 1 week ago
.gitignore first commit. 1 week ago
README.md first commit. 1 week ago
go.mod first commit. 1 week ago
go.sum first commit. 1 week ago

README.md

nnet

基于 Go 1.25.4 和 gnet 2.9.5 实现的高性能、功能完备的网络库。

特性

  • 多协议支持TCP、UDP、WebSocket、Unix Domain Socket、TLS、串口等
  • 现代化的路由系统:支持字符串匹配、帧头匹配、帧数据匹配
  • 灵活的中间件系统:全局中间件、路由级中间件
  • 协议版本管理:支持单协议多版本,灵活的版本识别策略
  • 连接管理:连接分组、跨连接操作
  • Session管理支持内存、文件、Redis等存储策略
  • 内置客户端支持TCP、UDP、WebSocket等协议
  • 插件系统:可扩展的插件架构
  • 指标监控Prometheus格式的Metrics
  • 健康检查:内置健康检查接口

安装

go get github.com/noahlann/nnet

快速开始

服务器示例

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)
    }
}

客户端示例

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/ 目录。

快速链接

用户指南

项目结构

nnet/
├── cmd/                    # 命令行工具和示例
├── internal/              # 内部实现
├── pkg/                   # 对外暴露的包
├── examples/              # 示例代码
├── test/                  # 测试代码
└── docs/                  # 文档

开发状态

🚧 开发中 - 项目正在积极开发中API可能会有变化。

贡献

欢迎贡献!请查看 CONTRIBUTING.md 了解详情。

许可证

MIT License

链接