NexusForce 1.0.0
A Modern C++ Library with extended functionality, web components, and utility libraries
载入中...
搜索中...
未找到
NexusForce

vcpkg CMake C++ CodeQL [Quality Gate]() Clang Format Clang Tidy C++ Core Guidelines Valgrind [Memory Leak](valgrind) License Docs PRs Welcome


📖 项目简介

本项目旨在建立**功能健全、风格统一、可读性强、社区共建、跨平台兼容**的现代 C++ 开发库。通过清晰的架构设计、规范的代码实现、丰富的设计模式应用,为项目开发提供实用的工具集,同时也为 C++ 学习者提供理解底层原理的实践载体,建立从学习到生产的连接点。

💡 有劳各位多多 提交 Issue,使本项目趋于健全。如有不足,还望斧正。


🖥️ 支持环境

项目 详情
平台 🪟 WINDOWS / 🐧 LINUX
指令集 X86
位宽 64位
编译器 MSVC (Windows) / LLVM-Clang (Windows, Linux) / ClangCL (Windows) / GCC (Linux)
C++ 标准 14 / 17 / 20

ℹ️ 兼容性说明
本库欢迎开发者进行更多编译器与操作系统的兼容性开发,欢迎您进行贡献。


✨ 工程质量

NexusForce 严格遵循现代 C++ 工程最佳实践,通过多层次自动化检查确保代码健壮性与可读性。

指标 状态 说明
📊 代码规模 12万+ 行 核心库源码与头文件
🔒 CodeQL 安全分析 0 漏洞 security-and-quality 全规则集,零安全告警
🔍 Clang-Tidy 静态检查 零警告 全量规则集(bugprone / cppcoreguidelines / hicpp / modernize / performance / readability),警告即错误
🎨 Clang-Format 代码风格 强制统一 120 列、4 空格、K&R 变体大括号、强制大括号插入等
💧 动态内存检查 0 泄漏 Valgrind 全量测试,无内存泄漏与越界访问

📋 **关于规则豁免**:.clang-tidy 包含约 60 项显式豁免,.clang-format 包含多项风格定制。每一项均针对底层系统编程的固有需求,遵循"默认严格,按需放开"原则。


📡 标准合规

NexusForce 的核心组件实现严格遵循相关国际标准与行业规范,确保行为可预测、互操作性强且安全可靠。以下为关键组件的标准映射:

🌐 网络协议与互联网标准

组件 遵循标准 说明
HTTP 与 WebSocket RFC 9110 / RFC 9112 (HTTP/1.1), RFC 6265 (Cookie), RFC 6455 (WebSocket), W3C Fetch CORS HTTP 语义与路由、Cookie 管理、CORS 跨域策略、WebSocket 升级与帧协议
DNS 客户端 RFC 1034, RFC 1035, RFC 2181, RFC 6891, RFC 3596, RFC 2782 DNS 协议客户端,A/AAAA/MX/SRV/PTR 记录查询、UDP/TCP 传输自动切换与 TTL 缓存管理
ICMP 协议 RFC 792 (STD 5), RFC 1122, RFC 4884, IANA ICMP 参数注册表 Ping (Echo Request/Reply) 与 Traceroute (Time Exceeded) 网络诊断,含 RFC 1071 校验和算法
SMTP 协议 RFC 5321 (STD 10), RFC 5322, RFC 3207 (STARTTLS), RFC 8314 (隐式 TLS), RFC 4954 (AUTH), RFC 2045–2047 (MIME) 邮件传输与消息格式,支持 PLAIN/LOGIN 认证、STARTTLS/隐式 TLS 加密及 MIME 多部分消息
MAC 地址 IEEE 802-2014, IEEE 802.3-2022, RFC 7042 48 位 EUI-48 地址解析与格式化,支持单播/多播/本地管理地址识别与标准十六进制表示
URL 解析与编码 RFC 3986, RFC 3987, WHATWG URL URI 通用语法、百分号编码及国际化资源标识符
网络端口定义 IANA 端口号注册表, RFC 6335 知名端口分配
UUID 生成 RFC 4122, RFC 9562 UUID v4(随机)与 v7(时间有序)生成规范
字节大小单位 IEC 80000-13:2008, IEEE 1541-2021, BIPM SI Brochure (9th Ed.) 二进制前缀 (KiB/MiB/GiB) 与十进制前缀 (kB/MB/GB)

📁 配置文件格式

组件 遵循标准 说明
JSON RFC 8259 RFC 8259, ECMA-404:2017 JSON 六种值类型、UTF-8 编码、IEEE 754-2019 双精度数字与字符串转义序列
TOML 1.0.0 TOML v1.0.0 包含日期时间格式遵循 RFC 3339 / ISO 8601
YAML 1.2 YAML 1.2.2, RFC 8259, RFC 3339, IEEE 754-2019 YAML 1.2 是 JSON 严格超集,支持八种核心值类型、五种字符串标量样式、锚点别名与标签系统

🔐 密码学与安全算法

组件 遵循标准 说明
AES-256 加密 NIST FIPS 197, ISO/IEC 18033-3 高级加密标准,支持 ECB/CBC/GCM 模式(NIST SP 800-38A / SP 800-38D
SHA-256 哈希 NIST FIPS 180-4, RFC 6234 安全哈希算法(SHA-2 家族),256 位输出
SHA-1 哈希 NIST FIPS 180-4 (历史兼容) ⚠️ 已标注安全警告(SHAttered 碰撞攻击)
MD5 哈希 RFC 1321 (历史兼容) ⚠️ 已标注安全警告,仅用于非安全校验场景
Base64 编码 RFC 4648 §4, RFC 4648 §5 标准与 URL 安全 Base64 编解码,严格填充规则与非法字符检测

🔤 字符编码与国际化

组件 遵循标准 说明
UTF-8 / UTF-16 / UTF-32 Unicode 15.1.0, ISO/IEC 10646, RFC 3629 / RFC 2781 Unicode 码点操作、规范化与编码转换,含无效序列检测
Unicode 码点处理 Unicode 15.1.0 §2.4, §2.13 代理对处理、BOM 检测与替换字符 (U+FFFD) 规则

📐 数据结构与算法

组件 遵循标准 / 学术文献 说明
堆算法 ISO/IEC 14882:2020 §25.8.6 复杂度保证与 Floyd 堆调整优化 (Algorithm 245)
红黑树 Guibas & Sedgewick (1978) 自平衡二叉搜索树经典实现,O(log n) 复杂度保证
莱昂纳多堆 / 平滑排序 Dijkstra (1981) EWD796a 自适应排序算法,最优时间复杂度 O(n)
内省排序 Musser (1997) 混合快速/堆/插入排序,C++ 标准库 sort 默认算法
非加密哈希 FNV-1a 草案, MurmurHash3 高性能哈希表与布隆过滤器专用
布隆过滤器 Bloom (1970), Broder & Mitzenmacher (2004), Kirsch & Mitzenmacher (2006) 双哈希优化的概率性集合成员查询结构,O(k) 插入/查询,支持最优参数 (m, k) 推导与误报率估算

⚙️ 系统、并发与命令行

组件 遵循标准 说明
原子内存序 ISO/IEC 14882:2020 §31.4 C++ 内存模型,含硬件屏障等价与 Intel TSX HLE 支持
命令行解析 POSIX.1-2017 (IEEE 1003.1) 第12章, GNU getopt_long 支持短选项组合、长选项、-- 分隔符与可选值
日期与时间 ISO 8601-1:2019, RFC 3339, POSIX 时间戳 公历计算、儒略日转换与 Unix 纪元处理
SQL 语句构建器 ISO/IEC 9075 (SQL-92 及后续版本) 生成符合 ANSI SQL 的 SELECT/INSERT/UPDATE/DELETE 语句

🎨 图形、色彩与数学

组件 遵循标准 说明
RGB 颜色模型 W3C CSS Color Level 4, Compositing Level 1 直通 Alpha 合成、十六进制格式与 ANSI 256 色调色板
灰度转换 ITU-R BT.709 / IEC 61966-2-1 (sRGB) 人眼感知加权(0.299R + 0.587G + 0.114B)
数学函数与常量 IEEE 754-2019, ISO/IEC 10967 (LIA) 三角函数归约、牛顿迭代法与机器精度容差
随机数生成 ISO/IEC 18031:2011, NIST SP 800-90A 梅森旋转 (MT19937) 与操作系统熵源真随机数

📖 **文档完整性**:所有涉及上述标准的类与函数,均在其 API 注释(Doxygen 格式)中标注了具体的标准章节号与官方链接,开发者可随时溯源验证。


🚀 特性

🔄 并发与异步 (Async)

📦 容器 (Container)

🔐 加密与安全 (Encrypt)

📁 文件系统 (File)

🌐 网络库 (Network)

🗄️ 数据库 (DB)

  • database_pool - 数据库连接复用与管理
  • sql_builder - 标准 SQL 语句流式构建
  • 多数据库支持:
    • MySQL 客户端
    • PostgreSQL 客户端
    • SQLite 客户端
    • Redis 客户端
  • 预处理语句 - 防止 SQL 注入
  • 结果集封装 - 统一结果访问接口

📝 日志系统 (Logging)

  • log_sink - 可扩展的日志输出目标
  • file_sink - 日志文件管理与轮转
  • 多级别日志 - 支持不同日志级别
  • log_formatter - 自定义日志格式
  • logger - 灵活可配置的日志器

🔤 字符串处理 (String)

⚙️ 系统接口 (System)

⏰ 时间处理 (Time)

🛠️ 工具库 (Utility)

  • 字面类型包装类 - 字面类型的高级封装
  • optional - 可选值处理
  • variant - 类型安全联合体
  • expected - 错误状态处理
  • any - 类型擦除容器
  • pair/tuple - 编译期键值对/元组
  • color - RGB 颜色操作
  • scope_exit / scope_fail / scope_success - 作用域守卫
  • 数值/字符信息 - 数值/字符类型信息获取
  • ratio - 编译期比率计算
  • uuid - UUID v4/v7 生成器
  • compressed_pair - EBCO内存优化

🔍 反射系统 (Reflection)

🧬 类型与特性 (TypeInfo)

  • 类型萃取 - 完备的编译期类型判断
  • 概念约束 - 概念集支持
  • check_type - 运行时可读的类型名
  • CRTP 静态多态 - 全局统一的零开销接口

💾 内存管理 (Memory)

📦 压缩 (Compress)

  • lz4 压缩 - lz4_compressor 高速数据压缩/解压
  • zlib 压缩 - zlib_compressor 多策略通用数据压缩/解压

🔌 插件系统 (Plugin)

  • 动态插件管理 - plugin_manager 运行时加载卸载插件
  • 插件接口 - 标准化插件开发

❗ 异常处理 (Exception)

  • 异常指针 - exception_ptr 跨线程异常传递
  • 终止处理 - 多状态程序终止方式与对应回调
  • 异常/错误码系统 - 自定义的异常与错误码体系
  • 断点处理 - 调试断点触发与处理

📐 算法库 (Algorithm)

  • 标准算法 - 基于迭代器系统的范围迭代算法
  • 并行算法 - 并行执行策略
  • 数值算法 - 数值计算与累加
  • 堆算法 - 堆操作与优先级队列
  • 范围操作 - ranges 库支持
  • 哈希算法 - 多种哈希函数实现

📊 数学库 (Math)

  • 数学常量 - 常用数学常数
  • 数学函数 - 超越函数与数值计算
  • 随机数生成 - LC、梅森旋转、硬件噪声算法 random_lcd / random_mt / secret
  • 128位数学计算 - 128位有符号/无符号数值操作 int128_t / uint128_t

⚖️ 协议

本项目基于 [MIT 开源协议](LICENSE) 发布。