Skip to content

Commit bc9b7fd

Browse files
committed
chore: bump version to 0.4.0
- CMakeLists.txt VERSION 0.3.1 -> 0.4.0 - README: add Windows to platform list, update test count to 578, mention Windows + vcpkg in the Build section, update BUILDING.md table row. - docs/REMAINING-WORK.md: refresh "Last updated" header with v0.4.0 scope; the carrier-NAT line now correctly attributes the CGNAT fix to post-v0.3.1 work (HandshakeResult::server_address propagation). Highlights since v0.3.1: - Windows x86_64 (vcpkg + MSVC, separate CI workflow) - CGNAT holepunch fix (load-bearing serverAddress propagation for JS server fast-mode punch trigger) - ESP32 single-socket mode under HYPERDHT_EMBEDDED — restores same-LAN connectivity broken by the v0.3.0 dual-socket refactor - Example client close path - Misc fixes: Ctrl+C drain, NAT sampling timing, FFI for Android VpnService.protect()
1 parent 0b21e60 commit bc9b7fd

3 files changed

Lines changed: 10 additions & 8 deletions

File tree

CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
cmake_minimum_required(VERSION 3.20)
22
project(hyperdht-cpp
3-
VERSION 0.3.1
3+
VERSION 0.4.0
44
LANGUAGES C CXX
55
DESCRIPTION "C++ reimplementation of HyperDHT"
66
)

README.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -23,24 +23,24 @@ Wire-compatible with JS `hyperdht@6.29.1`. Live-tested in both directions on the
2323

2424
| | |
2525
|---|---|
26-
| **Tests** | 566 unit + 6 live, ASAN/UBSan clean |
26+
| **Tests** | 578 unit + 6 live, ASAN/UBSan clean |
2727
| **API parity** | Full -- wire-compatible with JS `hyperdht@6.29.1` ([audit](docs/archive/JS-PARITY-GAPS.md)) |
2828
| **Languages** | C++ / C / Python / Kotlin (Swift, Go, Rust planned) |
29-
| **Platforms** | Linux, macOS, ESP32, Android |
29+
| **Platforms** | Linux, macOS, Windows, Android, ESP32 |
3030

3131
## Build
3232

3333
```
3434
nix develop && mkdir -p build && cd build && cmake .. -G Ninja && ninja && ctest -L unit
3535
```
3636

37-
Without Nix: install `cmake`, `ninja`, `libsodium`, `libuv`, then the same cmake flow. Docker also works (`docker build -t hyperdht .`). See [BUILDING.md](docs/BUILDING.md) for full instructions (Linux, macOS, Docker, linking, troubleshooting).
37+
Without Nix: install `cmake`, `ninja`, `libsodium`, `libuv`, then the same cmake flow. Docker also works (`docker build -t hyperdht .`). On Windows, use vcpkg for the dependencies and MSVC — CI builds the static and shared variants on every push (`.github/workflows/windows.yml`). See [BUILDING.md](docs/BUILDING.md) for full instructions (Linux, macOS, Windows, Docker, linking, troubleshooting).
3838

3939
## Documentation
4040

4141
| | |
4242
|---|---|
43-
| [Build instructions](docs/BUILDING.md) | Linux, macOS, Docker, Nix — deps, compile, link, troubleshoot |
43+
| [Build instructions](docs/BUILDING.md) | Linux, macOS, Windows, Docker, Nix — deps, compile, link, troubleshoot |
4444
| [C API reference](docs/C-API.md) | 76 functions, opaque-pointer pattern, callback-based async |
4545
| [C++ API reference](docs/CPP-API.md) | RAII wrappers, error codes, single-threaded event loop |
4646
| [Python examples](examples/python/) | Server, client, holesail tunnel, 22 wrapper tests |

docs/REMAINING-WORK.md

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
Tasks to verify / harden the implementation, organized by category and estimated effort.
44

5-
**Last updated: 2026-05-02** (v0.3.1security audit + reusableSocket)
5+
**Last updated: 2026-05-08** (v0.4.0Windows port + CGNAT holepunch + ESP32 single-socket)
66

77
---
88

@@ -213,8 +213,10 @@ Still not exposed:
213213

214214
- **Run a public node** — announce on the public DHT, serve real nospoon traffic
215215
- **Multi-region test** — clients in US, EU, Asia connecting through each other
216-
- **Mobile network test** — 4G/5G NAT behavior verified (v0.3.0: Android echo
217-
works over carrier NAT, both ephemeral and persistent server states)
216+
- **Mobile network test** — 4G/5G NAT behavior verified. v0.3.0 fixed the
217+
post-persistent echo bug; CGNAT holepunch landed post-v0.3.1 via
218+
`HandshakeResult::server_address` propagation (relay's fresh observation
219+
triggers JS server fast-mode punch — see CLAUDE.md gotcha #19).
218220
- **IPv6 validation** — protocol has IPv6 fields (`addresses6`); we don't exercise them
219221

220222
---

0 commit comments

Comments
 (0)