From 93be288d13b22dfda2c5fe3aee0a67a30540d419 Mon Sep 17 00:00:00 2001 From: Gaspard Kirira Date: Thu, 29 Jan 2026 21:40:29 +0300 Subject: [PATCH 1/2] chore(submodules): add p2p_http module --- .gitmodules | 4 ++++ modules/p2p_http | 1 + 2 files changed, 5 insertions(+) create mode 160000 modules/p2p_http diff --git a/.gitmodules b/.gitmodules index 97afb71..85783d7 100644 --- a/.gitmodules +++ b/.gitmodules @@ -54,3 +54,7 @@ [submodule "third_party/asio-src"] path = third_party/asio-src url = https://github.com/chriskohlhoff/asio.git +[submodule "modules/p2p_http"] + path = modules/p2p_http + url = https://github.com/vixcpp/p2p_http.git + branch = dev diff --git a/modules/p2p_http b/modules/p2p_http new file mode 160000 index 0000000..d650d09 --- /dev/null +++ b/modules/p2p_http @@ -0,0 +1 @@ +Subproject commit d650d09eb738ea93daa81ca514bcd43234e5b49e From 99cf7a3019a2bafab527e451cdc3147eadc3972b Mon Sep 17 00:00:00 2001 From: Gaspard Kirira Date: Fri, 30 Jan 2026 01:05:45 +0300 Subject: [PATCH 2/2] fix(http): stabilize static serving and middleware wiring --- CMakeLists.txt | 39 +++++++++++++++++++++++++++++++++++++++ modules/cli | 2 +- modules/core | 2 +- modules/middleware | 2 +- modules/p2p | 2 +- modules/p2p_http | 2 +- 6 files changed, 44 insertions(+), 5 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index cc252cb..5d639dc 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -125,6 +125,7 @@ option(VIX_DB_USE_SQLITE "Enable SQLite backend in vix_db" OFF) option(VIX_DB_USE_POSTGRES "Enable PostgreSQL backend in vix_db" OFF) option(VIX_DB_USE_REDIS "Enable Redis backend in vix_db" OFF) option(VIX_ENABLE_P2P "Build Vix P2P module" ON) +option(VIX_ENABLE_P2P_HTTP "Build Vix P2P HTTP adapter module" ON) option(VIX_ENABLE_CACHE "Build Vix Cache module" ON) option(VIX_FETCH_DEPS "Allow fetching missing deps from the internet" OFF) @@ -470,6 +471,26 @@ else() message(STATUS "P2P: disabled or not present.") endif() +# --- P2P HTTP Adapter (optional) --- +set(VIX_HAS_P2P_HTTP OFF) + +# Guard: p2p_http requires both core + p2p +if (VIX_ENABLE_P2P_HTTP AND VIX_HAS_P2P AND EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/modules/p2p_http/CMakeLists.txt") + message(STATUS "Adding 'modules/p2p_http'...") + add_subdirectory(modules/p2p_http p2p_http_build) + + if (TARGET vix::p2p_http OR TARGET vix_p2p_http) + set(VIX_HAS_P2P_HTTP ON) + if (TARGET vix_p2p_http AND NOT TARGET vix::p2p_http) + add_library(vix::p2p_http ALIAS vix_p2p_http) + endif() + else() + message(WARNING "p2p_http module added but no vix::p2p_http target was exported.") + endif() +else() + message(STATUS "P2P HTTP: disabled, missing, or P2P not built.") +endif() + # --- Middleware (optional) --- set(VIX_HAS_MIDDLEWARE OFF) if (VIX_ENABLE_MIDDLEWARE AND EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/modules/middleware/CMakeLists.txt") @@ -602,6 +623,10 @@ if (TARGET vix::p2p) target_link_libraries(vix INTERFACE vix::p2p) endif() +if (TARGET vix::p2p_http) + target_link_libraries(vix INTERFACE vix::p2p_http) +endif() + if (TARGET vix::db) target_link_libraries(vix INTERFACE vix::db) endif() @@ -617,9 +642,11 @@ endif() # Link middleware only if it exists if (TARGET vix::middleware) target_link_libraries(vix INTERFACE vix::middleware) + target_compile_definitions(vix INTERFACE VIX_HAS_MIDDLEWARE=1) elseif (TARGET vix_middleware) add_library(vix::middleware ALIAS vix_middleware) target_link_libraries(vix INTERFACE vix::middleware) + target_compile_definitions(vix INTERFACE VIX_HAS_MIDDLEWARE=1) endif() # Propagate sanitizers to consumers (umbrella) @@ -823,6 +850,11 @@ if (VIX_HAS_P2P) set(VIX_WITH_P2P ON) endif() +set(VIX_WITH_P2P_HTTP OFF) +if (VIX_HAS_P2P_HTTP) + set(VIX_WITH_P2P_HTTP ON) +endif() + if (TARGET vix::websocket OR TARGET vix_websocket) set(VIX_WITH_SQLITE ON) endif() @@ -879,6 +911,11 @@ if (VIX_ENABLE_INSTALL) FILES_MATCHING PATTERN "*.hpp" PATTERN "*.h") endif() + if (VIX_HAS_P2P_HTTP AND EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/modules/p2p_http/include") + install(DIRECTORY modules/p2p_http/include/ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} + FILES_MATCHING PATTERN "*.hpp" PATTERN "*.h") + endif() + if (EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/modules/middleware/include") install(DIRECTORY modules/middleware/include/ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} FILES_MATCHING PATTERN "*.hpp" PATTERN "*.h") @@ -935,6 +972,8 @@ if (VIX_ENABLE_INSTALL) set(VIX_HAS_P2P ${VIX_HAS_P2P}) set(VIX_WITH_CACHE ${VIX_WITH_CACHE}) set(VIX_WITH_P2P ${VIX_WITH_P2P}) + set(VIX_HAS_P2P_HTTP ${VIX_HAS_P2P_HTTP}) + set(VIX_WITH_P2P_HTTP ${VIX_WITH_P2P_HTTP}) configure_package_config_file( "${CMAKE_CURRENT_SOURCE_DIR}/cmake/VixConfig.cmake.in" diff --git a/modules/cli b/modules/cli index 8e71501..a7462cf 160000 --- a/modules/cli +++ b/modules/cli @@ -1 +1 @@ -Subproject commit 8e71501f3c8c4d9e99ef45bd02adbd7f9705f643 +Subproject commit a7462cfe1bed4f35ffc019d821a755f961936ba8 diff --git a/modules/core b/modules/core index 8957c84..5e5de28 160000 --- a/modules/core +++ b/modules/core @@ -1 +1 @@ -Subproject commit 8957c845fbea249fdb71d3d32ed59ad2f503cb4b +Subproject commit 5e5de28264feaf7f964da768de308aacbf23daed diff --git a/modules/middleware b/modules/middleware index 381671a..7eda882 160000 --- a/modules/middleware +++ b/modules/middleware @@ -1 +1 @@ -Subproject commit 381671ad2dad62d71c0803e59989d9ab6c19dbd7 +Subproject commit 7eda882964f4c33b8976404bc0dab41fd678a4e4 diff --git a/modules/p2p b/modules/p2p index 2fa8e4b..8953e52 160000 --- a/modules/p2p +++ b/modules/p2p @@ -1 +1 @@ -Subproject commit 2fa8e4b7d60589a3532b23a383b07a9fabc6ab53 +Subproject commit 8953e52e4f28f2763c4295ee0db169faea482565 diff --git a/modules/p2p_http b/modules/p2p_http index d650d09..de501c6 160000 --- a/modules/p2p_http +++ b/modules/p2p_http @@ -1 +1 @@ -Subproject commit d650d09eb738ea93daa81ca514bcd43234e5b49e +Subproject commit de501c6c7512d631f92cea56b35263eb542e0579