Skip to content

v0.1.2

Choose a tag to compare

@joaquinbejar joaquinbejar released this 08 Mar 09:24
· 60 commits to main since this release

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 ResponseRequest and ResponseType to 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! and eprintln! calls with tracing macros (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.rs for 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 let loop using is_some() for better readability.

Bug Fixes

  • Fixed formatting inconsistencies in error tests for improved readability.
  • Resolved incorrect repository casing in README.md clone instructions.
  • Aligned comments and removed unused blank lines across test modules.
  • Adjusted logging in integration tests to maintain consistency with the new tracing implementation.

Breaking Changes

  • Replaced Decimal with f64: Removed dependency on rust_decimal, simplifying numeric handling.
  • Logging Migration: All logging now follows tracing conventions, 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.md with improved formatting, corrections, and revised examples using tracing.
  • Included new testing guidelines and expanded integration test descriptions.

Migration Notes

  • Developers should replace Decimal usage with f64 where applicable.
  • Projects relying on println! and eprintln! for debugging should migrate to tracing macros.
  • Ensure compatibility with the new response handling system (ResponseRequest and ResponseType).

Acknowledgments

Special thanks to Joaquin Bejar for leading the implementation, refactoring, and documentation efforts in this release.


Release Links