v0.1.2
Release Notes: Version 0.1.2 - DXLink Client Enhancements and Testing Improvements
Summary
This release introduces a series of improvements, including enhanced logging, structured documentation, improved testing coverage, and refined event handling for the DXLink client. Key updates include integration tests, structured response handling, connection management refinements, and performance optimizations.
What's New
- DXLink Client Implementation: Introduced a WebSocket-based DXLink client with authentication, subscriptions, and event/message handling.
- Structured Response Handling: Implemented
ResponseRequestandResponseTypeto improve asynchronous message control and reliability. - Unit & Integration Tests: Added a comprehensive suite of unit and integration tests covering serialization, deserialization, error handling, and client workflows.
- Comprehensive Documentation: Detailed structured comments and examples for various event and message structs, ensuring maintainability and clarity.
Enhancements
- Logging Standardization: Replaced
println!andeprintln!calls withtracingmacros (info!,error!) for structured logging. - Connection Management Refinements: Improved thread-safe locking, keepalive handling, and streamlined message processing.
- Code Readability Improvements: Refactored method chains in
events.rsfor better clarity, reorganized imports, and improved test readability. - Cargo.toml Cleanup: Removed unused dependencies (
rust_decimal,chrono,derive_builder) for a leaner dependency footprint. - Simplified Binary Message Loop: Optimized
while letloop usingis_some()for better readability.
Bug Fixes
- Fixed formatting inconsistencies in error tests for improved readability.
- Resolved incorrect repository casing in
README.mdclone instructions. - Aligned comments and removed unused blank lines across test modules.
- Adjusted logging in integration tests to maintain consistency with the new
tracingimplementation.
Breaking Changes
- Replaced
Decimalwithf64: Removed dependency onrust_decimal, simplifying numeric handling. - Logging Migration: All logging now follows
tracingconventions, requiring projects using DXLink to update their logging setup accordingly.
Documentation Updates
- Added structured documentation for events and messages, aligning them with JSON serialization standards.
- Updated
README.mdwith improved formatting, corrections, and revised examples usingtracing. - Included new testing guidelines and expanded integration test descriptions.
Migration Notes
- Developers should replace
Decimalusage withf64where applicable. - Projects relying on
println!andeprintln!for debugging should migrate totracingmacros. - Ensure compatibility with the new response handling system (
ResponseRequestandResponseType).
Acknowledgments
Special thanks to Joaquin Bejar for leading the implementation, refactoring, and documentation efforts in this release.
Release Links