ForwardEngine 是一个基于 Modern C++ (C++23) 的高性能代理引擎原型。它摒弃了传统回调模式,完全基于 net::awaitable 协程与 Boost.Asio/Beast 构建,旨在提供一个低延迟、高并发、且具备深度流量伪装能力的网络底座。
- 纯粹的 C++23 协程设计:
核心链路完全基于
co_await,消除回调地狱,以同步代码的逻辑编写极致性能的异步网络服务。 - 企业级网络栈: 基于 Boost.Asio (I/O 调度) 与 Boost.Beast (HTTP/WebSocket),天然支持高并发。
- Obscura 隐形层 (Stealth Mode):
内置流量伪装模块,将 TCP 流量封装进标准的 WebSocket (WSS) 协议。
实战意义:流量特征与正常网页浏览一致,支持通过 Cloudflare/CDN 进行中转,极大增强抗封锁能力。
- 现代依赖管理:
- 编译器:
MinGW-w64(支持 C++23)。 - 构建系统:
CMake 3.15+。 - 三方依赖:除标准库外,依赖从
c:/bin查找(根目录CMakeLists.txt里配置了CMAKE_PREFIX_PATH、OPENSSL_ROOT_DIR)。
建议的依赖清单:
Boost(Asio、Beast、System 等)。OpenSSL。spdlog(日志底座;项目提供trace/spdlog.hpp封装)。glaze(JSON序列化/反序列化;项目提供transformer模块封装)。- 具体用法见 premise.md。
- 可执行入口通常在
src/forward-engine/*。 - 测试在
test/*,其中session_test用于验证:CONNECT隧道的双向转发是否正确- 一端关闭后,另一端是否能及时收敛退出
include/forward-engine/agent/*worker.hpp:监听端口、accept、创建sessionsession.hpp:会话主链路(协议识别、HTTP/Obscura 处理、隧道与收尾)analysis.hpp/.cpp:协议识别与目标解析distributor.hpp/.cpp:路由与连接获取connection.hpp/.cpp:连接池(monopolize_socket+deleter回收)
include/forward-engine/http/*:HTTP 类型与编解码include/forward-engine/trace/*:日志封装(基于spdlog)include/forward-engine/transformer/*:数据转换封装(基于glaze)test/*:最小集成测试与回归用例
- 连接池当前仅覆盖 TCP;尚未实现全局 LRU、后台定时清理、跨线程共享/分片池。
- 反向代理路由表
reverse_map_仍在完善中。
本项目采用 MIT License。