Skip to content

v0.3

Choose a tag to compare

@frs69wq frs69wq released this 19 Jan 16:27
· 166 commits to main since this release

Major improvements:

  • Enhanced code quality with comprehensive refactoring
    • Improved modern C++17 usage throughout the codebase
    • Reduced code complexity and technical debt
  • Memory safety and robustness improvements
    • Fixed critical memory safety issue in DTL connection management
    • Fixed race condition in Engine creation
    • Plugged memory leaks
  • Major refactoring with improved memory management, encapsulation, and move-only semantics
  • Improved CI/CD infrastructure
    • Added Valgrind and sanitizer checks (AddressSanitizer, UndefinedBehaviorSanitizer)
    • Enhanced test coverage and validation
  • Comprehensive proofread of the documentation

API Changes:

  • DTL::get_stream_by_name_or_null() renamed to DTL::get_stream_by_name()
    Returns std::optional<std::shared_ptr> instead of raw pointer
    Python: dtl.get_stream_by_name() now returns None if stream not found
  • Metadata management transferred from Engine to Stream
    Stream::get_metadata_file_name() replaces Engine::get_metadata_file_name()
    Python: stream.metadata_file_name replaces engine.metadata_file_name
  • Stream method chaining improvements
    set_engine_type() and set_transport_method() now return Stream& instead of Stream*
    Enables cleaner fluent interface: stream.set_engine_type(...).set_transport_method(...)
  • DTL::create() now accepts std::string_view and has empty default parameter
  • String parameters changed to std::string_view for better performance:
    • DTL::add_stream(), DTL::get_stream_by_name()
    • Stream and Variable constructors and methods
  • get_engine_type_str() and get_transport_method_str() now return std::optional<const char*>