// readme

Ruvia

Ruvia 是基于 C++20 协程的 HTTP/Web 框架,提供协程路由处理、声明式类型化模型、中间件、流式传输、WebSocket、HTTP 隧道、出站客户端,以及可选的 SQL(MariaDB / PostgreSQL)、ORM、Redis 和 JWT 支持。

库目录CMake Target职责与公开依赖
ruvia-coreruvia::core协程任务、事件循环、有界通道与阻塞卸载池;依赖 standalone Asio、Threads::Threads 与 mimalloc。
ruvia-httpruvia::http独立 sans-I/O 的 HTTP/1.0、HTTP/1.1、HTTP/2、内容压缩与 WebSocket 协议层;依赖 zlib、Brotli 与 Zstandard。
ruvia-webruvia::web服务端、路由、中间件、Model/ORM、TLS、出站客户端与数据接入;依赖 ruvia::core、ruvia::http 与 OpenSSL 3.0+。

构建与接入

需要 CMake 3.28+、支持 C++20 的编译器,以及已引导的 vcpkg 检出目录(设置环境变量 VCPKG_ROOT)。Linux 可执行文件要求 glibc;Windows 构建要求 MSVC,并使用 x64-windows-static triplet 与静态运行时(MultiThreaded$<$<CONFIG:Debug>:Debug>)。

顶层构建在未指定 CMAKE_TOOLCHAIN_FILE 时从 VCPKG_ROOT 自动选择 vcpkg 工具链,并按启用的构建选项选择 vcpkg.json 中的依赖特性;作为子项目或外部包接入时,宿主工程自行提供工具链与依赖清单。

CMake 选项默认值说明与边界
RUVIA_BUILD_COREON构建 ruvia::core。
RUVIA_BUILD_HTTPON构建 ruvia::http。
RUVIA_BUILD_WEBON构建 ruvia::web(要求 RUVIA_BUILD_CORE=ON 且 RUVIA_BUILD_HTTP=ON)。
RUVIA_BUILD_EXAMPLES…