model/ 是本仓库的核心子系统,采用 C++20 标准与“以头文件为主”的交付方式,聚合四类高性能基础组件:
container/:模拟实现STL容器,接口一致、低侵入替换;concurrent/:标准容器的线程安全封装(读共享/写独占);sched/:可扩展的调度与线程池框架,支持动态扩缩容与任务编排;network/:协议/会话/加密/转发组件,面向高并发网络应用。
整体设计强调:模块解耦、统一接口风格、可插拔策略、易集成落地;适用于服务端开发、网络代理、数据处理与并发调度等场景。
- 标准库(C++20):
std::shared_mutex、std::mutex、std::condition_variable、std::jthread、std::future等并发/异步基元。 - Boost 生态:
Boost.Asio:异步IO与TCP/UDP/SSL网络基础;Boost.Beast:HTTP协议与流处理;Boost.JSON:高性能JSON解析与序列化;
- 安全库:
OpenSSL:TLS/SSL握手与证书验证(X509_check_host等);Crypto++:对称/非对称加密、HMAC、AES-GCM/CBC/CTR、RSA-PSS/OAEP、ElGamal、SHA256/MD5等。
依赖建议:优先使用 vcpkg 或系统包管理安装上述库;链接时启用 SSL 与 Crypto++,并确保编译选项使用 -std=c++20。
- 提供
vector/list/map/set/queue/stack/string/tree等容器的模拟实现。 - 保持
STL风格接口与一致语义,统一聚合头model/container/container.hpp。 - 配套仿真与算法工具(
simulate_*:算法、哈希、布隆过滤器、异常、指针与迭代器模拟等)。
- 覆盖主流标准容器:
deque/queue/stack/vector/list/map/set/unordered_map/unordered_set、priority_queue、forward_list、bitset、string。 - 采用
std::shared_mutex实现读共享、写独占;队列与条件等待使用std::mutex + std::condition_variable。 - 提供一致接口与只读快照理念(迭代与统计优先使用
snapshot())。
- 核心组件:
thread_pool.hpp(线程池)、worker.hpp(工作线程)、rank.hpp(队列/排名策略)、scheduling.hpp(调度策略)、integration.hpp(统一配置与统计)、unit.hpp(任务单元)。 - 能力特性:
- 动态扩缩容(
set_thread_count / scale_up / scale_down); - 多策略队列(
fifo/priority/adaptive等); - 任务编排(优先级/延迟/超时/依赖/批量提交);
- 健康监控与性能采样(吞吐、队列利用率、活跃线程等)。
- 动态扩缩容(
- 协议:
agreement/*(http.hpp/json.hpp/protocol.hpp/conversion.hpp/auxiliary.hpp),统一的头/体/编解码与转换工具。 - 会话:
session/*(fundamental.hpp/conversation.hpp),TCP/SSL客户端/服务端、连接池与读写收发回调。 - 业务:
business/forwarder.hpp提供HTTP/HTTPS代理转发和数据劫持与上游名单解析(域名解析与回退策略)。 - 加密:
crypt/encryption.hpp提供对称/非对称/摘要算法与封装,支持密文封包格式与完整性校验。
- 编译:
C++20,启用优化(如-O2,不启用优化可能会出现标准库静态链接问题,在链接阶段加入OpenSSL与Crypto++。 - 头文件路径:将
model/目录加入编译器include搜索路径;模块按需包含对应.hpp。 - 依赖管理:推荐
vcpkg(boost-asio,boost-beast,boost-json,openssl,cryptopp)。 - 迭代器与并发:在写入并发下避免长期持有迭代器/引用;统计遍历优先走只读接口或快照。
- 网络安全:启用
TLS时配置SNI与证书验证,必要时加载CA文件并开启主机名检查。
本项目采用 MIT 许可证,可自由使用、修改与分发。