8000 Releases · joaquinbejar/ig-client · GitHub
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

Releases: joaquinbejar/ig-client

v0.1.12

21 Jun 06:42
68332ee
Compare
Choose a tag to compare
Bump `ig-client` dependency to `0.1.12` in `README.md`.

v0.1.11

19 Jun 16:50
867815f
Compare
Choose a tag to compare

Release Notes: Version 0.1.11 - Testing Expansion and Codebase Cleanup

Summary

Version 0.1.11 focuses on expanding unit test coverage, refining code consistency, and optimizing performance through targeted refactors. This release improves reliability by enhancing test infrastructure, clarifies code intent through cleanups, and tightens floating-point precision handling.


What's New

  • Unit Tests for Core Services:
    • Introduced unit tests for account_service, market_service, and order_service, covering response structures, configuration endpoints, and order lifecycle.
    • Added mock HTTP client setup for isolated testing scenarios.
  • Expanded Coverage:
    • Comprehensive test additions for order, parsing, and display modules.
    • Coverage includes error handling, edge cases, and validation logic.

Enhancements

  • Precision and Safety:
    • Refined floating-point comparison logic in display_tests.
    • Rounded order sizes to two decimal places and defaulted currency_code to EUR.
  • Code Cleanups:
    • Standardized import ordering and comment language across modules.
    • Removed unused nanoid dependency and trailing whitespace.
    • Improved logging message consistency and visibility modifiers in PriceData.

Bug Fixes

  • Corrected a minor issue with currency_code assignment in order.rs.
  • Adjusted safety margin clamping logic in config_tests.rs for better accuracy.

Breaking Changes

  • None in this release. All changes maintain backward compatibility.

Documentation Updates

  • Minor typo corrections and standardized English in the README.
  • Improved inline documentation and comment consistency across test modules.

Migration Notes

  • No migration steps required. Users can safely upgrade without altering configurations or interfaces.

Acknowledgments

Thanks to Joaquin Bejar for comprehensive testing contributions, meticulous code refinement, and improved test infrastructure design.


Release Links

v0.1.10

15 Jun 18:17
2c9b3cb
Compare
Choose a tag to compare
Standardize comment language in `config_tests.rs`.

v0.1.9

13 Jun 12:30
a99397d
Compare
Choose a tag to compare

Release Notes: Version 0.1.9 - Enhanced Option Orders and API Consistency

Summary

Version 0.1.9 focuses on enhancing the flexibility of option order APIs, improving code clarity, and unifying behavior across the client. This release also introduces a comprehensive example for creating and closing option orders, supporting better user onboarding and integration.


What's New

  • New Example for Option Orders: Added a detailed example showcasing how to create and close option orders, simplifying learning and adoption.

Enhancements

  • Refactored order-related APIs to improve flexibility and maintainability.
  • Introduced utility methods and refined request structures to streamline option order workflows.
  • Unified USER_AGENT usage across HTTP clients for consistent identification.
  • Simplified TimeInForce usage to reduce complexity in tests and API calls.
  • Cleaned up imports in order_tests.rs to improve code hygiene.

Bug Fixes

  • No direct bug fixes included in this release, but the API refactors address potential maintainability and consistency issues.

Breaking Changes

  • None. All enhancements are backward-compatible.

Documentation Updates

  • Bumped ig-client dependency to version 0.1.8 in the README and other documentation references.
  • Included a comprehensive option order example to the examples directory, demonstrating key workflows.

Migration Notes

  • No migration steps are required. Existing integrations remain fully compatible.

Release Links

v0.1.8

10 Jun 08:48
ffb17b4
Compare
Choose a tag to compare

Refactor, Feature Enhancements, and Dependency Updates (v0.1.8)

Description

This pull request encompasses a series of updates and improvements to the project. These include enhancements to error handling and rate limiting, consolidation of parsing logic, the introduction of example scripts, and the standardization of dependency management. Additionally, the ig-client dependency has been bumped to version 0.1.8, and relevant documentation and examples have been updated accordingly.


Changes Made

  • Rate Limiting: Added a OnePerSecond limiter to prevent request bursts and ensure API compliance.
  • Retry Logic: Implemented exponential backoff with jitter in IgHttpClientImpl to improve reliability under failure conditions.
  • Structured Logging: Replaced println! with info! across examples for improved observability.
  • Parsing Refactor: Removed the market_parser module and consolidated logic into parsing, simplifying code maintenance.
  • New Examples: Introduced get_market_details.rs to fetch market data and updated market_details.json.
  • Code Clean-Up: Removed intermediate result saving and performed formatting standardization and error handling improvements.
  • Workspace Dependencies: Migrated to workspace-based dependency declarations for maintainability and consistency.
  • Version Bump: Incremented crate version to 0.1.8 and included the benches directory in the published package.
  • Documentation Update: Updated the README and example Cargo.toml files to reflect the ig-client version 0.1.8.

Testing

  • Unit Testing: Existing unit tests passed successfully after changes.
  • Manual Testing:
    • Verified correct rate limiting and retry behavior in example scripts.
    • Validated parsing and market detail fetching via the new examples.
  • Regression Checks: Ensured no breaking changes were introduced during dependency and structural refactors.

Screenshots/Examples

  • examples/get_market_details.rs: Demonstrates usage of the updated client with new rate limiting and retry capabilities.

Additional Notes

  • The migration to workspace-based dependencies significantly reduces redundancy and simplifies version management.
  • Further enhancements could include abstracting retry strategies for different use cases.

Checklist

  • Code changes reviewed and tested.
  • Documentation and examples updated.
  • All tests passing.
  • Version bumped to 0.1.8.
  • Package includes benchmarks directory.

v0.1.6

25 May 18:58
a6777d0
Compare
Choose a tag to compare

Release Notes: Version 0.1.6 - Advanced Rate Limiting and API Reliability

Summary

This release focuses on improving API reliability and compliance through an advanced rate-limiting system. It includes robust error recovery, automatic backoff mechanisms, and better concurrency management. Additionally, the codebase has been cleaned and refactored for maintainability.


What's New

  • Advanced Rate Limiting: Introduced a new rate-limiting mechanism featuring:
    • Configurable safety margins to prevent hitting rate limits.
    • Automatic backoff for handling server-imposed throttling.
    • Improved error recovery for resilient API interaction.

Enhancements

  • Refactored the rate limiter logic for greater clarity and flexibility.
  • Introduced detailed metadata for rate limits to assist in debugging and monitoring.
  • Improved concurrency handling to ensure smoother operation under load.

Documentation Updates

  • Updated example scripts and tests to demonstrate the new rate-limiting features.
  • Removed outdated entries from market_table.json to align with current system state.

Migration Notes

  • No manual changes required. However, users are encouraged to review and adopt the new rate-limiting configurations for optimal API usage.

Release Links

v0.1.5

22 May 11:56
787b291
Compare
Choose a tag to compare

Release Notes: Version 0.1.5 - Working Orders and Enhanced Market Integration

Summary

Version 0.1.5 introduces critical enhancements for interacting with the IG Markets API, focusing on working order support, serialization utilities, and expanded market data capabilities. This release also includes comprehensive test coverage, code cleanups, and new example projects to support users in integrating and validating their workflows.


What's New

  • Working Order Support: Added methods in OrderService to create and retrieve working orders, complete with new request/response models.
  • Serialization Utilities: Introduced dedicated modules to handle optional float, boolean, and string serialization/deserialization as per IG API requirements.
  • Market Data Enhancements: Added support for batch market detail requests and introduced a market_details.rs example for fetching multiple EPICs.

Enhancements

  • Improved deserialization in market data models to better support new fields like updateTimeUTC.
  • Enhanced MarketService with batch API request capabilities for more efficient data retrieval.
  • Refactored and reorganized test modules for maintainability and clarity.
  • Added update_time_utc field to market test data for better alignment with UTC time standards.

Bug Fixes

  • Removed deprecated modules and unused code in transport and utility areas to streamline the codebase.
  • Eliminated outdated and redundant unit tests to reduce noise and improve test quality.

Breaking Changes

  • Deprecated internal transport and utility modules have been removed. Ensure that any custom implementations or imports referencing these modules are updated accordingly.

Documentation Updates

  • Introduced example project demonstrating usage of the ig-client and lightstreamer-rs crates, including a detailed market_details.json output.
  • Sample market search data for the German market included to assist in rapid prototyping and testing.

Migration Notes

  • Users relying on removed transport/util modules must refactor to use updated public serialization interfaces.
  • Ensure that working order-related integrations use the new methods in OrderService.

Release Links

v0.1.4

20 May 11:21
9dac5af
Compare
Choose a tag to compare

Release Notes: Version 0.1.4 – Unified Listener Model and Enhanced Test Coverage

Summary

This release focuses on architectural simplification and improved code quality. It introduces a generic Listener structure to unify data update handling, reorganizes test structures for better coverage, and enhances documentation and code maintainability across services and utilities.


What's New

  • Generic Listener Implementation: Unified handling of data updates (e.g., prices, trades, accounts) through a single, flexible Listener struct. This replaces previously separate listener implementations.
  • New Example Scripts: Added usage examples demonstrating integration with Lightstreamer for both price and trade data updates.
  • Docker Support: Introduced a Dockerfile for packaging the transaction fetch example.

Enhancements

  • Refactored test structure into a modular format, improving clarity and scalability.
  • Added utility functions for JSON serialization and transaction ID parsing.
  • Introduced parse_instrument_name for structured extraction from instrument identifiers.
  • Updated WebSocket handling with fallback logic and robust error management.
  • Cleaned up and modularized services, transaction handling, and WebSocket flows for better readability and reusability.
  • Replaced individual service listeners with a unified Listener trait-based approach.
  • Switched logging from println! to tracing for structured and configurable output.
  • Reorganized service interfaces under a new interfaces directory for clearer separation of concerns.

Bug Fixes

  • Removed obsolete test modules and unused examples to streamline the codebase.
  • Eliminated redundant code in WebSocket client and transport layers.
  • Improved resilience in date parsing with fallbacks to avoid runtime errors.

Breaking Changes

  • Deprecated individual listener structs (AccountListener, PriceListener) in favor of a single Listener trait model. Users must update custom listener integrations accordingly.
  • Removed the legacy IgTxClient and all associated transaction-fetching logic.
  • Deleted obsolete modules including unused examples, mockito-based test files, and redundant imports.

Documentation Updates

  • Significantly enhanced code documentation with comments for structs, enums, constants, and modules.
  • Updated README with Lightstreamer integration examples and current version references.
  • Documented new testing strategy, listener design, and Docker usage.

Migration Notes

  • Ensure you refactor any custom listeners to adopt the new generic Listener pattern.
  • Review and adapt test code if relying on deprecated or relocated files.
  • Update ig-client dependency references to version 0.1.4 as per the new standard.
  • For Docker-based deployments, leverage the newly added Dockerfile with the tx_loop.rs example.

Release Links

v0.1.3

18 May 14:33
975cc9a
Compare
Choose a tag to compare

Release Notes: Version 0.1.3 - Unified Listeners, Refined Services, and Robust Testing

Summary

This release introduces a major refactor that unifies event listener logic, enhances service structure, and significantly improves test coverage across the codebase. It also adds support for Lightstreamer-based real-time updates and streamlines the overall architecture for greater maintainability and performance.


What's New

  • Generic Listener Implementation: Introduced a unified Listener structure replacing multiple specific listeners (e.g., AccountListener, PriceListener), simplifying the architecture and enabling reusable update processing logic.
  • New Listeners: Added dedicated PriceListener and TradeListener components for handling real-time market and trade data streams via Lightstreamer.
  • Example Scripts: Provided example scripts demonstrating integration with Lightstreamer for both price and trade data processing.

Enhancements

  • Refactored listener modules to reduce duplication and improve consistency.
  • Reorganized test structures into a modular format with improved coverage for AccountService, OrderService, and MarketService.
  • Updated and clarified English translations in code comments.
  • Cleaned up and standardized import statements across the codebase.
  • Introduced utility functions for JSON serialization/deserialization and enhanced transaction ID management.

Bug Fixes

  • Removed obsolete test files and eliminated outdated code dependent on mockito.
  • Fixed minor formatting inconsistencies and dead imports to improve code clarity and maintainability.

Breaking Changes

  • Legacy listener types (e.g., AccountListener, PriceListener) have been replaced by a generic Listener. Existing integrations using specific listener types may need updates to align with the new structure.
  • WebSocket client replaced with a Lightstreamer-based implementation. Any code depending on the previous WebSocket setup must migrate accordingly.

Documentation Updates

  • Expanded README with updated version notes and integration details for Lightstreamer-based clients.
  • Added bilingual documentation consistency for broader accessibility and user clarity.

Migration Notes

  • Replace all instances of specific listeners with the new generic Listener type.
  • Update client instantiations to use Lightstreamer-based listeners for real-time data.
  • Ensure tests and services align with the refactored test utilities and new listener architecture.

Release Links

0