解决MySql布尔型新旧版本兼容问题,采用枚举来表示布尔型的数据表。由正向工程赋值
大石头 authored at 2018-05-15 21:21:05
9.43 KiB
X
# 网络库竞品分析 > 版本:v6.0 | 日期:2026-10-12 > 定位:**高层概览**——只做大方向对比,用来看清本库在同类中的位置。v12 重型重构已完成,早期那种"逐项矩阵 + 逐档性能"的细粒度对标(用于驱动快速重构)已不再需要。 > 数据来源:竞品官方仓库与 NuGet 联网核验(2026-10-12);本库性能数据见 `Doc/性能/` 各报告。 --- ## 1. 一句话结论 本库在**传输、内存、协议、兼容性、AOT、可观测性**这些"底层硬能力"上,已经与主流同类对齐,部分领先;剩下的差距集中在**上层应用化**(HTTP 深度、插件生态、装配体验)和**生态经营**(文档、宣发)——属于长期慢补的事,不再构成"必须马上重构"的压力。 --- ## 2. 竞品与格局 ### 2.1 竞品一览 | 竞品 | 定位 | 与本库的关系 | |------|------|--------------| | **Kestrel** | 微软 ASP.NET Core Web 服务器(HTTP/1.1、HTTP/2、HTTP/3、WebSocket) | 上层 Web 协议实现,非直接竞争;可借鉴其超时/内存管理 | | **DotNetty** | Netty 的 .NET 移植(事件驱动异步框架) | 直接同类;模型经典但**迭代已停滞** | | **SuperSocket** | 可扩展 Socket 服务器框架(拆包器 + Command + MCP/SSE) | 直接同类;**上层应用化程度高** | | **TouchSocket** | 一体化网络框架(TCP/UDP/WS/HTTP/MQTT/Modbus/RPC/MCP) | 直接同类;**插件生态 + 双语文档**强 | | **HPSocket.Net** | 国产 C++ 通信内核 HP-Socket 的 .NET 绑定 | 直接同类;代表"原生内核 + 托管绑定"流派 | | **NetCoreServer** | 极简异步 Socket 库(TCP/SSL/UDP/UDS/HTTP/WS,C10K) | 直接同类;"极简派"标本 | | **WatsonTcp** | 消息级 TCP 框架(.NET Foundation,内建分帧 + OTel + AOT) | 直接同类;"易用派"标本 | | **System.IO.Pipelines** | .NET 官方流式 I/O 基础设施(Pipe/PipeReader/PipeWriter) | 对标基准,非竞品 | ### 2.2 现状数据(2026-10-12) | 竞品(仓库) | 版本 | 许可 | Stars | Forks | NuGet 下载量 | 维护 | |------|------|------|------:|------:|------------:|------| | **NewLife.Core**(NewLifeX/X) | 12.0.2026.1011-beta | MIT | 1,860 | **549** | 191 万 | 活跃 | | Kestrel(dotnet/aspnetcore) | 随 .NET 10 | MIT | 38,467 | 13,488 | —(框架内置) | 活跃 | | DotNetty | 0.7.6 | MIT | 4,250 | 1,009 | 2,310 万 | ⚠️ 停滞 | | SuperSocket | 2.1.0 | Apache-2.0 | 4,236 | 1,162 | 29 万 | 活跃 | | TouchSocket | 4.3.10 | Apache-2.0 | 1,284 | 206 | 95 万 | 活跃 | | HPSocket.Net | 6.0.9.1 | Apache-2.0 | 221 | 53 | 23 万 | 低频 | | NetCoreServer | 8.0.7 | MIT | 3,128 | 629 | 154 万 | 活跃 | | WatsonTcp | 6.5.0 | MIT | 675 | 129 | 60 万 | 活跃 | | System.IO.Pipelines(dotnet/runtime) | 随 .NET 10 | MIT | 18,331 | 5,651 | —(BCL) | 活跃 | > 口径:Stars/Forks/推送时间为 GitHub API;下载量为 NuGet 累计(主包口径)。**Fork 数上看本库不占优(549 低于 DotNetty/SuperSocket/NetCoreServer),但 fork/star ≈ 29.5% 是同类最高**——反映"fork 后定制/私有化改名"的活跃度强。 ### 2.3 分层与流派 这些对象不在同一层,先分层再看: - **应用框架层**:SuperSocket(Command)、TouchSocket(Plugin/RPC)——把网络能力包装成"应用框架"。 - **Web/Agent 协议层**:Kestrel(HTTP 家族);近两年 SuperSocket / TouchSocket 把 **MCP**(AI Agent 通信)纳入进来。 - **通用网络层(同类战场)**:本库、DotNetty、SuperSocket 核心、TouchSocket、HPSocket.Net、NetCoreServer、WatsonTcp。 - **基础设施**:System.IO.Pipelines。 三大流派:**微软系共享底座**(Kestrel/SuperSocket,基于 Pipelines)、**自研一体栈**(本库/DotNetty/TouchSocket/NetCoreServer/WatsonTcp)、**原生内核**(HPSocket.Net,C++ 内核 + P/Invoke)。本库属"自研一体栈",走"一套抽象覆盖全部 + 少量扩展点"的路线。 --- ## 3. 大方向对比 只比大方向,不逐项展开。结论栏用相对定位(领先 / 持平 / 落后): | 方向 | 本库状态 | 同类坐标 | 结论 | |------|----------|----------|------| | **传输协议** | TCP/UDP 双栈双协议(四监听聚合)+ TLS + WebSocket + 嵌入式 HTTP + UDS;任意二进制协议为一等公民 | 各家大体齐备;Kestrel 专注 HTTP 深度,NetCoreServer 多协议对称 | 持平(本库"宽而全") | | **I/O 与内存** | SAEA 接收环 + 零拷贝所有权(借出即包装句柄,收尾按引用计数决定留用还是换新) | Pipelines 系 async 循环、DotNetty `ByteBuf` 引用计数、NetCoreServer/WatsonTcp 无池化 | 持平或略领先(所有权模型较独特) | | **编解码与扩展** | 单引擎 `MessagePump` + 无状态协议对象 `IMessageCodec`;同步/异步双入口,整帧/流式通吃 | 各家都有拆包机制(FrameDecoder / PipelineFilter / DataAdapter) | 持平(广度略领先) | | **请求-响应** | `SendMessageAsync` 匹配队列(池化、零分配) | SuperSocket Command、TouchSocket RPC、WatsonTcp SendAndWait | 持平 | | **客户端功能** | 自动重连(基础档)、谓词群发、负载均衡(客户端多节点) | TouchSocket 重连插件 + 插件生态更全 | 持平偏弱(重连体验、插件生态) | | **平台兼容** | **11 个 TFM(net45~net10)**,零第三方依赖 | 同类最低 net462(TouchSocket)/ net6(SuperSocket);HPSocket 走原生库 | **领先** | | **AOT / Trim** | 核心链路 NativeAOT 实测支持(31 场景、0 告警、CI 门禁) | Kestrel / WatsonTcp / TouchSocket 也支持 | 持平(已对齐) | | **可观测性** | `ILog` + `ITracer`,且**与 OpenTelemetry 双向互通**(W3C traceparent) | WatsonTcp 内建 OTel(单向) | 持平或略领先 | | **应用化程度** | 手工分发为主,生态层 `NewLife.Remoting` 承接 RPC | SuperSocket Command、TouchSocket 插件市场 | **落后**(上层应用化) | | **包结构** | 单包巨石(一个 `NewLife.Core` 拿到全套) | SuperSocket 16+ 模块化包 | 落后(但与"全家桶"定位绑定) | | **国际化与宣发** | 中文文档为主;性能数据完整但未对外发布 | DotNetty/SuperSocket 英文社区;TouchSocket 双语 + Pro | **落后** | --- ## 4. 本库的优势(高层) 1. **兼容矩阵最宽**:net45 起、11 个 TFM,零第三方依赖——老工业上位机/桌面项目里基本没有替代品。 2. **开箱即用的传输**:一行配置自动监听 Tcp/Tcpv6/Udp/Udpv6,还补齐了 UDS。 3. **零拷贝内存模型**:引用计数句柄 + 收尾自动裁决,"没人用时零借还",且配 DEBUG 兜底告警。同类里只有本库把所有权自动化做到这一步。 4. **协议层流式能力**:头部到齐即交付、大帧走流式体(`LimitedReader`),以"通用协议契约"形态提供、且全 TFM 可用——同类少见。 5. **自研 `Pipe`**:形态对齐 `System.IO.Pipelines`,但**最老到 net45 都能用**(Pipelines 最低 ns2.0)。 6. **生态闭环 + 可私有化**:星尘/Remoting/MQTT/Cube 协同;MIT 协议、支持整体改名私有化——fork/star 比值同类最高。 --- ## 5. 本库的差距(高层) 1. **HTTP 深度有限**:无 HTTP/2、HTTP/3、SNI——重 Web/网关场景要前置 Kestrel。 2. **上层应用化不足**:没有 Command 模型、没有开箱插件(心跳/鉴权/限流),企业接入要自己写。 3. **没有声明式装配**:靠属性赋值装配,没有 Kestrel 那种 `Use(...)` 中间件链,组合复杂时不好读、不好发现。 4. **重连体验单薄**:只有基础重连,缺退避梯度、断线期间消息缓冲、状态恢复钩子——弱网/移动端体验有差距。 5. **大缓冲池化未系统化**:>85KB 的大块只有"必须零拷贝"的经验指导,没有分级池/POH 方案。 6. **国际化与宣发薄弱**:英文资料少、性能数据没对外发——影响海外采用与口碑。 > 说明:以上都是"锦上添花"型差距,**没有一条是"底座不行"**。底层能力(传输/内存/协议/兼容/AOT/可观测性)已经不落后。 --- ## 6. 后续方向(按性价比排序) | 优先级 | 事项 | 说明 | |:------:|------|------| | **P0** | 整合发布性能基准报告 | 五份内部报告已就绪,整合成对外《网络性能基准报告》即可(标注测试条件,别夸大)——成本低、见效快 | | **P0** | 重连能力分级 | 客户端层独立改动,不碰内核:可配退避序列 + 重连生命周期事件 + 消息缓冲钩子 | | **P1** | 装配 Builder 模型 | 加一层薄 `ServerBuilder`/`ClientBuilder` 映射现有装配点,不替换现有 API;提升可读性与可发现性 | | **P1** | 应用层插件三件套 | 心跳/鉴权/限流,以 Handler 形式开箱即用,顺带当 `INetHandler` 教学样本 | | **P2** | HTTP 补强 / 模块化 / 英文文档 | 视需求立项:SNI、HTTP/2 调研;模块化包拆分;核心文档英译 | | **P2** | 观察 MCP / AI Agent 通信 | 竞品新方向;本库定位通用网络层,先观察,有明确场景再由生态层承接 | --- ## 7. 说明 - 本文为**高层概览**,不做逐项/逐档对比;要细颗粒度的性能与机制对比,看 `Doc/性能/` 下的专项报告与《消息协议栈》《数据管道Pipe》等设计文档。 - 竞品数据截至 2026-10-12(官方仓库 + NuGet 核验),维护状态以官方仓库为准;本库基线为 v12,正式发版后部分数据需复核。 (完)