Skip to content

Releases: dxFeed/dxfeed-graal-cxx-api

v8.0.0

Choose a tag to compare

@github-actions github-actions released this 06 Sep 21:18
  • [MDAPI-423][C++] [BREAKING] Fixed Java-to-C++ porting errors in packed event fields, native
    conversions, string handling, and candle attributes.
    • setSequence() and OrderBase::setSource() now preserve unrelated packed bits; Message native conversion
      preserves event time; StringLike copy/move operations and native C-string handling are now safe.
    • Candle equality, formatting, price-level validation/parsing, and session parsing now match Java QD semantics.
      Price levels reject negative values, negative zero, infinities, and trailing parse data; floating-point equality
      follows Java NaN/signed-zero rules; only case-insensitive "true" enables the regular candle session.
    • APIs that can fail validation or parsing are no longer noexcept; invalid input now throws an exception instead
      of terminating the process.
  • Migrated to Graal SDK v3.2.13.

v7.0.0

Choose a tag to compare

@github-actions github-actions released this 16 Jul 15:31
  • [MDAPI-417] [BREAKING] All methods of the Order class and its descendants whose names begin with "with" are made virtual.
  • [MDAPI-416] [BREAKING] All "publish" methods of the DXPublisher class are now const and can throw exceptions.
  • The project now depends on the zip bundles of the dxFeed Graal Native SDK library, which are located in GitHub Releases.
  • [BREAKING] Project build speed has been improved. The implementation of all non-template methods of non-template classes is now located in .cpp files.
  • Improved documentation. Classes are now divided into "modules". Main Page - Topics - dxFeed Graal C++ API Modules.

v6.0.0

Choose a tag to compare

@github-actions github-actions released this 24 Jun 19:20
  • [MDAPI-405] Fixed project build errors that occurred when attempting to build a project using clang 19+.
  • [MDAPI-406] Fixed linking errors where some static fields could be uninitialized.
  • [MDAPI-411] Fixed the toString() method of the Summary event.
  • Migrated to Graal SDK v3.2.0.
  • [BREAKING] Fixed a sporadic build error where the compiler failed to pick the correct method implementation when only a single event type was specified during subscription creation.
    These methods are now const:
    • template <typename EventTypeIt> std::shared_ptr<DXFeedSubscription> createSubscription(EventTypeIt begin, EventTypeIt end) const;
    • template <typename EventTypesCollection> std::shared_ptr<DXFeedSubscription> createSubscription(const EventTypesCollection &eventTypes) const;
    • template <typename EventTypeIt> std::shared_ptr<DXFeedTimeSeriesSubscription> createTimeSeriesSubscription(EventTypeIt begin, EventTypeIt end) const;
    • std::shared_ptr<DXFeedTimeSeriesSubscription> createTimeSeriesSubscription(std::initializer_list<EventTypeEnum> eventTypes) const;
    • template <typename EventTypesCollection> std::shared_ptr<DXFeedTimeSeriesSubscription> createTimeSeriesSubscription(const EventTypesCollection &eventTypes) const;
  • Added the ability to collect and register metrics. Enabled by the DXFCXX_ENABLE_METRICS CMake option. Documentation: TBD.
  • Added CMake option DXFCXX_MSVC_DISABLE_CONSTEXPR_MUTEX_CONSTRUCTOR.
    This option enables MSVC's _DISABLE_CONSTEXPR_MUTEX_CONSTRUCTOR workaround for compatibility with older VC++ runtime
    libraries. It should normally remain disabled and is intended only for environments that experience crashes caused by
    mixing newer STL headers with older msvcp140.dll versions.
    See:

v5.0.0

Choose a tag to compare

@github-actions github-actions released this 04 Nov 22:02
  • [MDAPI-262][C++][Linux] Shared libraries now compiled with noexecstack flag.
  • [MDAPI-238][С++] Added the ability to set Java System properties.
    • The sources of system properties are:
      • Environment Variables.
        • All keys must start with the prefix DXFEED_, e.g. DXFEED_log.file=log.txt,
          DXFEED_dxscheme.bat=millis, etc.
        • This allows overriding a property without changing the files, in fact it is analogous to
          java -Dkey=value -jar app.jar.
        • In operating systems such as Linux and macOS, you can pass properties in the following ways:
          env DXFEED_key1=value1 DXFEED_key2=value2 ./app
        • In Windows, properties can be passed using the following syntax:
          set DXFEED_key1=value1 && set DXFEED_key2=value2 && app.exe,
          but be careful, this will set environment variables globally for the open terminal, to avoid setting
          properties globally, you can use the following method:
          cmd /v/c "set DXFEED_key1=value1 && set DXFEED_key2=value2 && app.exe"
      • dxfeed.system.properties
        • This file follows the java.properties or INI format and is generally compatible if you don't go into
          detail.
        • The path to this file can be specified by setting the environment variable
          DXFEED_dxfeed.system.properties.
        • By default, this file is searched for in the current runtime directory.
    • Priority and Overrides:
      • The configuration sources are applied in the following order, with each successive source overwriting values
        from the previous one:

        • dxfeed.system.properties
        • Environment Variables
        • Direct calls to System::setProperty in source code, in the order in which they were called.

        This order ensures that the most specific configuration settings are applied last, allowing for effective
        overrides and precise control over system properties.

  • [MDAPI-178][C++] Added com.dxfeed.glossary package
    • Added AdditionUnderlyings class.
    • Added CFI class.
    • Added PriceIncrements class.
    • Added RoundingMode enum.
  • [BREAKING] The Day::getHashCode method renamed to Day::hashCode.
  • [BREAKING] The Session::getHashCode method renamed to Session::hashCode.
  • [BREAKING] The DXEndpoint::getEventTypes() method now can throw exceptions.
  • [BREAKING] Most of the input string arguments in class methods have been replaced with a StringLike wrapper for
    unification.
  • Fixed the naming of endpoints.
  • Project build has been speeded up.
  • The project has been migrated to fmtlib v12.1.0.
  • [Linux][Windows][x64] Added the ability to link with the debug version of the dxFeed Graal Native SDK on Linux x86_64 and Windows x86_64.
    This linking can be enabled using the DXFCXX_USE_DEBUG_DXFEED_GRAAL_NATIVE_SDK option.
  • [MacOS][BREAKING] We're now building the project on MacOS using Xcode 16.4.
    You can build the project yourself from source code using earlier versions.

v4.3.1

Choose a tag to compare

@github-actions github-actions released this 26 Aug 14:50
  • [MDAPI-275][C++] Fixed compilation of code using DXFeed::getLastEventsPromises() method.
    • Added unit-tests for DXFeed::getLastEventsPromises() method.
    • Fixed documentation for DXFeed::getLastEventsPromises() method.
    • Added testQuotePromises function to the QuoteAndTradeSample to demonstrate how to use DXFeed::getLastEventsPromises().

v4.3.0

Choose a tag to compare

@github-actions github-actions released this 21 Aug 17:19
  • [MDAPI-108][С++] Added CandleWebService API sample.
  • [MDAPI-253][C++] Implemented HistoryEndpoint
    • Added HistoryEndpoint class.
    • Migrated to Graal SDK v2.6.2
  • Renamed DXFCXX_NODEFAULTLIB_LIBCMT to DXFCXX_NODEFAULTLIB CMake project option for clearer purposes and added support for additional libraries in /NODEFAULTLIB configuration.
  • [MDAPI-254][C++] Migrated to Graal SDK v2.5.0
    • Added AGGREGATE, COMPOSITE, REGIONAL OrderSource. The new system property dxscheme.unitaryOrderSource=true|false has been added.
      It controls whether a single or unitary source is used when subscribing to all sources. It is set to 'false' by default.
      All separate sources, such as COMPOSITE_ASK, COMPOSITE_BID, REGIONAL_ASK, REGIONAL_BID, AGGREGATE_ASK and AGGREGATE_BID have been
      declared deprecated.
    • Added new Order source for BlueOcean ATS: ocea.
    • Added new Order sources for IG CFDs Gate: IGC, igc.
    • Added new Order sources for EDX Gate: EDX, edx.
    • Added new Order sources for Nuam Exchange Gate: NUAM, nuam.
  • Added the ability to automatically generate the DXEndpoint name.
    If the user does not explicitly specify the endpoint name, it will be generated using the template qdcxx{Id},
    where {Id} will be an empty string for the first instance of the endpoint and "-2", "-3", etc. for subsequent instances.

v4.2.1

Choose a tag to compare

@github-actions github-actions released this 07 May 22:59

Added build for aarch64-linux.

v4.2.0

Choose a tag to compare

@github-actions github-actions released this 10 Apr 20:27
  • [MDAPI-249][C++] Transitive dependencies are hidden.
  • Fixed a segfault related to linking features: added a default constructor for ApiContext.
  • [MDAPI-246][С++] Added an ability to build the project with statically linked runtime libraries with Visual
    Studio.
  • Fixed dynamic linking under Windows. These classes and functions are affected:
    • PromiseImpl, VoidPromiseImpl, EventPromiseImpl, EventsPromiseImpl, PromiseListImpl
    • isolated::internal::IsolatedTools::parseSymbols, isolated::internal::IsolatedTools::parseSymbolsAndSaveOrder,
      isolated::internal::IsolatedTools::runTool
    • All C-API functions.
  • Added the ability to enable dynamic linking of tests using the CMake parameter DXFCXX_DYNAMICALLY_LINK_UNIT_TESTS
  • Added the ability to enable dynamic linking of samples using the CMake parameter DXFCXX_DYNAMICALLY_LINK_SAMPLES
  • Added the ability to enable dynamic linking of tools using the CMake parameter DXFCXX_DYNAMICALLY_LINK_TOOLS
  • Added the ability to statically link Windows runtime libraries (for Visual Studio) using the
    DXFCXX_LINK_STATIC_RUNTIME parameter
  • Added the ability to ignore the libcmt/libcmtd library when statically linking Windows runtime libraries using the
    DXFCXX_NODEFAULTLIB_LIBCMT parameter (works only when the DXFCXX_LINK_STATIC_RUNTIME parameter is enabled)
  • Added preparation of library releases for Windows, linked statically with runtime libraries (with parameters: /MT,
    /MTd, /NODEFAULTLIB:LIBCMT, /NODEFAULTLIB:LIBCMTD). The names of these artifacts end with -static-mt, for
    example dxFeedGraalCxxApi-v4.2.0-rc1-x86_64-windows-Release-static-mt.zip
  • [MDAPI-248][C++] Now documentation is automatically collected and published on GitHub Pages and released.

v4.1.0

Choose a tag to compare

@github-actions github-actions released this 07 Mar 13:43
  • [MDAPI-35][C++] Added RequestProfileSample example
  • [MDAPI-30][C++] Added LastEventsConsoleSample sample
  • [MDAPI-27][C++] Implemented OptionChain
    • Added OptionChain class.
    • Added OptionSeries class.
    • Added OptionChainsBuilder class.
    • Added OptionChainSample example.
  • [MDAPI-77][C++] Added support for retrieving indexed events from feed
  • [MDAPI-78][C++] Added support for retrieving time-series events from feed
  • [MDAPI-36][C++] Implemented DXFeedTimeSeriesSubscription
    • Added DXFeedTimeSeriesSubscription class.
    • Added DXFeed::createTimeSeriesSubscription methods.
  • [MDAPI-214][C++][Console] Added MarketDepthModelSample
    • Added MarketDepthModelSample.
    • Added CmdArgsUtils::parseEventSources method.
  • [MDAPI-216][C++][Console] Added PriceLevelBook sample
  • [MDAPI-76][C++] Implemented TextMessage event
  • Migrated to Graal SDK v2.2.1
  • [MDAPI-214][C++][Console] Added MarketDepthModelSample
    • Added MarketDepthModelSample.
    • Added CmdArgsUtils::parseEventSources method.

v4.0.0

Choose a tag to compare

@github-actions github-actions released this 12 Dec 21:32
  • [MDAPI-38][C++] Add MultipleMarketDepthSample sample
    • Added MultipleMarketDepthSample sample.
    • Added AuthSample sample.
    • Added ReconnectSample sample.
    • Added IncOrderSnapshotSample sample.
  • Migrated to Graal SDK v2.1.2
  • [MDAPI-211][C++] Implement logging management
    • Added Logging class.
  • [MDAPI-82][C++] Implement MarketDepthModel
    • Added MarketDepthModel class.
    • Added MarketDepthModelListener class.
  • [MDAPI-84][C++] Implement TimeSeriesTxModel
    • Added TimeSeriesTxModel class.
  • [MDAPI-83][C++] Implement IndexedTxModel
    • Added TxModelListener class.
    • Added IndexedTxModel class.
    • Added EventSourceWrapper class needed to pass heterogeneous event sources using a container.
  • [MDAPI-79][C++] Retrieve promise-based events from feed
    • Added PromiseList<E> class where E - event type: a list of event receiving results that will be completed
      normally or exceptionally in the future.
      It is a std::vector<Promise<std::shared_ptr<E>>> wrapper with Graal semantics.
    • Added Promise<void> class.
    • Added Promises class: utility methods to manipulate Promise<> promises.
      • Added Promises::allOf(Collection &&collection) method that returns a new promise that completes when all
        promises from the given collection complete normally or exceptionally.
    • Fixed the Promise<std::shared_ptr<E>> semantics.
    • Added DXFeed::getLastEventPromise method.
    • Added DXFeed::getLastEventsPromises method.
    • Added DXFeed::getIndexedEventsPromise method.
    • [BREAKING] The DXFeed::getTimeSeriesPromise now returns
      std::shared_ptr<Promise<std::vector<std::shared_ptr<E>>>>
    • [BREAKING] The IndexedEventSubscriptionSymbol::getSource method now returns
      std::unique_ptr<IndexedEventSource>