Changelog
All notable changes to rix-io will be documented in this file.
This project follows Semantic Versioning (SemVer).
The format is based on Keep a Changelog,
and this project adheres to Semantic Versioning.
[Unreleased]
[1.0.0] - 2025-12-27
Added
Changed
Removed
[v1.0.0] — 2025-01-XX
🎉 First stable release of rix-io
This release marks the stabilization of the public IO API for the Rix ecosystem.
All core abstractions, naming conventions, and behaviors are now considered stable.
✨ Added
rix::io::File- Unified file abstraction for text and binary I/O
- RAII-based resource management
- Explicit
FileModeandFileType
rix::io::Buffer- Byte-oriented buffer abstraction
- Construction from text or raw bytes
- Safe conversion back to
std::string
- Reader utilities
read_textread_binarytry_read_texttry_read_binary
- Writer utilities
write_file_textwrite_file_binary- Explicit
WriteMode(truncate,append)
- Filesystem utilities
path_existsfile_sizetemp_file_path
- Comprehensive examples:
- Text read/write
- Binary read/write
- Append mode
- File copy
- Buffer roundtrip
- Missing-file handling
- Existence & size checks
- Initial test suite covering:
- Text write/read
- Safe read on missing files
🔁 Changed
- Introduced strict naming conventions to avoid collisions with the C++ standard library
- e.g.
exists→path_exists
- e.g.
- Standardized API structure across headers:
file.hppreader.hppwriter.hppbuffer.hpputil.hpp
- Improved CMake configuration for:
- Header-only mode
- Optional static build
- Examples and tests toggles
⚠️ Deprecated
- Deprecated legacy helper names (still available for transition):
existswrite_textwrite_binary
Deprecated APIs will remain available during the 1.x series and may be removed in v2.0.0.
🧱 Stability Guarantee
- All public APIs introduced in v1.0.0 are considered stable
- No breaking changes will be introduced without a major version bump
🚀 Notes
- This release establishes the quality and design baseline for all future Rix modules
rix-ioserves as the reference implementation for:- API clarity
- Naming discipline
- Example-driven documentation
[0.0.1] - 2025-12-13
Added
Changed
Removed
[0.1.0] - 2025-12-05
Added
Changed
Removed
[v0.1.0] - 2025-12-05
Added
- Initial project scaffolding for the
vixcpp/websocketmodule. - CMake build system:
- STATIC vs header-only build depending on
src/contents. - Integration with
vix::coreand optional JSON backend. - Support for sanitizers via
VIX_ENABLE_SANITIZERS.
- STATIC vs header-only build depending on
- Basic repository structure:
include/vix/websocket/for public headers.src/for implementation files.
- Release workflow:
Makefilewithrelease,commit,push,merge, andtagtargets.changelogtarget wired toscripts/update_changelog.sh.