Repository navigation
v0.3.0 release
automerge-cpp v0.3.0
This release focuses on quality assurance and rigorous performance analysis. It introduces automated fuzz testing, static analysis, and comprehensive benchmark results for Linux server environments, ensuring the library is both reliable and highly optimized for production deployments.
Linux Server Benchmarks
Detailed performance measurements were conducted on a high-end Linux server (Intel Xeon Platinum 8358, 30 vCPUs). The results demonstrate high-throughput capabilities for core operations:
- Map Operations: ~32.4 Million gets/sec and ~2.46 Million batched puts/sec.
- Cursor Operations: ~3 Million resolves/sec.
- Synchronization: ~1.48 Million sync messages generated per second.
- Microarchitecture Comparison: A detailed comparison between Linux (Xeon) and macOS (M3 Max) is included in
docs/benchmark-results-linux.md, highlighting performance differences in zlib/DEFLATE execution across compilers and architectures.
Automated Testing & Safety (Phase 9)
This release completes Phase 9, adding multiple layers of defense against bugs and security vulnerabilities:
- Fuzz Testing: Introduced three
libFuzzertargets (fuzz_load,fuzz_leb128,fuzz_change_chunk) to stress-test deserialization paths. - Seed Corpus: Integrated 8 upstream "crasher" files from the Rust implementation to ensure cross-platform robustness.
- Memory Safety CI: Added a dedicated GitHub Actions job running all 274 tests under AddressSanitizer (ASan) and UndefinedBehaviorSanitizer (UBSan) on Linux, macOS, and FreeBSD.
- Static Analysis: Implemented a project-wide
.clang-tidyconfiguration. CI now enforces zero warnings acrossbugprone-*,performance-*, andclang-analyzer-*check suites.
Code Quality Improvements
In preparation for the Phase 9 CI requirements, several architectural refinements were made to eliminate potential issues identified by static analysis:
- Logic Simplification: Collapsed redundant branches in OBJ decoding and value metadata encoding to improve maintainability and performance.
- Type Safety: Fixed potential implicit widening issues in multiplication results within the SHA-256 and compression logic.
- Modernization: Removed unnecessary
std::movecalls on trivially-copyable types and convertedstd::functionparameters toconst &to avoid redundant allocations.
CI & Workflow Updates
- Development Rules: Updated
CLAUDE.mdto mandate that all tests must pass locally before any commit. - Doxygen Foundation: Introduced the initial
Doxyfileconfiguration to support future automated API documentation generation (Phase 10). - FreeBSD Support: Refined the FreeBSD CI workflow to utilize the system's native zlib, resolving previous package installation conflicts.
Release Statistics
- Version: 0.3.0
- Tests: 274 passing tests.
- Platforms: Linux (GCC/Clang), macOS (Apple Clang), Windows (MSVC), FreeBSD (Clang).