diff --git a/.gitignore b/.gitignore index 72e203a..b2ff56c 100644 --- a/.gitignore +++ b/.gitignore @@ -72,6 +72,3 @@ db.sql revoir.md main.cpp .vix-scripts -Makefile/modules/p2p/ -/modules/p2p/ -/modules/p2p/ diff --git a/.gitmodules b/.gitmodules index 47fdd58..afd88d2 100644 --- a/.gitmodules +++ b/.gitmodules @@ -31,3 +31,19 @@ path = modules/middleware url = https://github.com/vixcpp/middleware.git branch = dev +[submodule "modules/p2p"] + path = modules/p2p + url = git@github.com:vixcpp/p2p.git + branch = dev +[submodule "modules/net"] + path = modules/net + url = https://github.com/vixcpp/net.git + branch = dev +[submodule "modules/sync"] + path = modules/sync + url = https://github.com/vixcpp/sync.git + branch = dev +[submodule "modules/cache"] + path = modules/cache + url = https://github.com/vixcpp/cache.git + branch = dev diff --git a/CHANGELOG.md b/CHANGELOG.md index 7ab5e90..8a5f32c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,6 +9,112 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +## v1.18.0 — Modular networking & secure P2P foundation + +### Highlights + +- Major architectural cleanup and modular extraction +- P2P stack now fully decoupled from core +- Cache, net, and sync promoted to first-class modules +- Clear dependency layering across the ecosystem + +--- + +### 🧩 New Modules + +- **net** + Low-level networking primitives and reachability utilities + (connectivity probing, network helpers). + +- **cache** + Standalone HTTP cache engine with pluggable stores + (memory, LRU, file-based). + +- **sync** + Offline-first synchronization engine + (WAL, outbox, retries, sync workers). + +--- + +### 🧠 Core + +- Removed embedded cache and sync implementations +- Core now focuses strictly on: + - HTTP server + - routing + - request / response lifecycle + - sessions & configuration +- Much cleaner public surface and faster compile times + +--- + +### 🧱 Middleware + +- Explicit dependency on cache (no implicit coupling) +- JSON and utils remain optional +- Scoped strictly to HTTP middleware pipeline +- Extensive smoke test coverage restored and stabilized + +--- + +### 🌐 P2P + +Integrated **v0.5.1** (latest) + +#### P2P v0.5.1 — Latest + +- Removed dependency on `vix::core` +- Requires `vix::net` only +- `sync`, `cache`, and `utils` are optional +- Cleaner, modular build +- Internal refactors (discovery, node, router) + +#### P2P v0.5.0 + +- Complete secure transport layer (Phase 6) +- Encrypted envelopes with AEAD +- Per-peer session keys derived from handshake +- Replay protection using nonce counters +- Decrypt-before-dispatch logic +- Handshake & control messages kept plaintext +- Foundation for secure WAL / Outbox sync (Phase 6.6) + +#### P2P v0.4.0 + +- AEAD support (encrypt + authenticate) +- Extended envelope format (nonce + auth tag) +- Session key storage per peer +- Secure channels with nonce tracking +- NullCrypto implementation for development + +#### P2P v0.3.0 + +- HTTP bootstrap service for peer discovery +- Bootstrap.hpp and BootstrapHttp.cpp +- Extended node lifecycle for bootstrap integration +- Manual test registry added + +net +├─ cache +├─ sync +└─ p2p +└─ (optional sync integration) + +core +└─ middleware +└─ cache (required) + +This release establishes a **clean, scalable foundation** for: + +- offline-first sync +- secure edge routing +- future P2P + WAL integration +- long-term maintainability + +--- + +### 📐 Architectural State (v1.18.0) + ## v1.17.7 — Build & Run Reliability Improvements ### 🐛 Fixed diff --git a/modules/cache b/modules/cache new file mode 160000 index 0000000..8f71da9 --- /dev/null +++ b/modules/cache @@ -0,0 +1 @@ +Subproject commit 8f71da92b4f8a014e5a8373495115ca163ec56e4 diff --git a/modules/core b/modules/core index 3967756..de6dfe2 160000 --- a/modules/core +++ b/modules/core @@ -1 +1 @@ -Subproject commit 39677564cda333c726ffe0bfdd8554af61d533ee +Subproject commit de6dfe206fa918d1370fde8028ad07e419e79142 diff --git a/modules/middleware b/modules/middleware index 2121a23..5a05c51 160000 --- a/modules/middleware +++ b/modules/middleware @@ -1 +1 @@ -Subproject commit 2121a238bcf1e4047b04cea084e676aa4bc0dc2d +Subproject commit 5a05c512cd63eaca30e63638f71a6582e4248433 diff --git a/modules/net b/modules/net new file mode 160000 index 0000000..bff0221 --- /dev/null +++ b/modules/net @@ -0,0 +1 @@ +Subproject commit bff0221ad7bdafa8ecf897e0bb0e562f8b6a57e2 diff --git a/modules/p2p b/modules/p2p new file mode 160000 index 0000000..e70c865 --- /dev/null +++ b/modules/p2p @@ -0,0 +1 @@ +Subproject commit e70c86520eb3f366d0af6e74f5d69515a2e2b22f diff --git a/modules/sync b/modules/sync new file mode 160000 index 0000000..87fd89e --- /dev/null +++ b/modules/sync @@ -0,0 +1 @@ +Subproject commit 87fd89e571c7093e823a8ff24dc06477aaf26ecd