Skip to content

Releases: Alparse/databento-dotnet

v5.3.3

30 May 00:19

Choose a tag to compare

What's Changed

Fixed

  • NOMINMAX guards on native wrappers — prevents <windows.h> min/max macro conflicts that could cause compilation failures (Issue #24)

Changed

  • Thread safety documentation — added class-level and method-level thread safety remarks to ILiveClient and ILiveBlockingClient documenting the databento-cpp calling convention: complete all Subscribe calls before StartAsync, await each call sequentially
  • README thread safety callout — added thread safety guidance between LiveClient and LiveBlockingClient API reference sections
  • Coding agent guide — added pitfall #6 documenting concurrent Subscribe call risks with correct/incorrect code examples

Full Changelog: v5.3.2...v5.3.3

v5.3.2

27 May 03:56

Choose a tag to compare

What's Changed

Fixed

  • Pin databento-cpp to v0.58.0 — prevents builds from pulling broken intermediate states from main branch (#24)
  • Fix FormUrlEncodedContent disposal in retry loops — content was created outside the retry lambda, causing ObjectDisposedException on retry attempts in Reference API methods (PR #28)
  • Fix XML doc comments — escape S&P as S&P, qualify BatchSubmitJobAsync cref (PR #25)
  • Fix CA1826 — replace FirstOrDefault() with direct indexer in FileDataSource (PR #27)

Changed

  • Deprecate caching API — WithMemoryCache(), WithDiskCache(), and related types marked [Obsolete] with guidance to use WithFileSource() (Issue #29)
  • PlaybackController implements IDisposable — disposes internal SemaphoreSlim; called automatically during data source disposal (Issue #29)
  • StreamAsync XML documentation — detailed docs explaining live mode vs backtest mode behavior (Issue #30)
  • Add ConfigureAwait(false) across Reference API methods (PR #28)
  • Remove CA1805 default initializations across 10 files (PR #26)
  • Remove dead _apiKey field from LiveClient and ReferenceClient (PR #31)

Testing

  • 427 tests passing across 13 test suites
  • Verified against both project references and NuGet package

v5.3.0

15 Mar 02:51

Choose a tag to compare

Breaking Change

SchemaDateRange.Start and .End changed from string to DateTimeOffset (Issue #21)

DatasetRange already used DateTimeOffset for its Start/End properties, but SchemaDateRange (used in DatasetRange.RangeBySchema) was using raw strings. This inconsistency meant consumers had to manually parse dates to do comparisons or arithmetic.

What changed

  • SchemaDateRange.Start: stringDateTimeOffset
  • SchemaDateRange.End: stringDateTimeOffset
  • Added SchemaDateRange.Duration computed property (matches DatasetRange.Duration)

How to fix if affected

If your code assigned SchemaDateRange.Start or .End to a string variable:

// Before (v5.2.x)
string start = schemaRange.Start;

// After (v5.3.0)
string start = schemaRange.Start.ToString("o");  // ISO 8601
// Or better — just use DateTimeOffset directly
DateTimeOffset start = schemaRange.Start;

Other changes

  • [JsonIgnore] added to Duration on both DatasetRange and SchemaDateRange to prevent serialization leakage
  • Cleaned up .sln file: removed 23 gitignored project references that showed as absent for public repo clones (Issue #19 follow-up)

v5.2.3

01 Mar 01:17

Choose a tag to compare

Fixes & Features

Issue #18: Fix native DLL loading failures (debug builds)

  • Root cause: libcrypto-3-x64.dll, libssl-3-x64.dll, zstd.dll, legacy.dll were debug builds requiring VCRUNTIME140D.dll / ucrtbased.dll (only available with Visual Studio)
  • All native DLLs rebuilt as Release configuration
  • Removed unused zlib1.dll
  • Improved NativeLibraryLoader diagnostics with debug-build detection

Issue #19: Fix build-native.ps1 vcpkg/FetchContent conflict

  • Added vcpkg.json manifest so CMake FetchContent properly installs OpenSSL/zstd via vcpkg
  • Build script now requires vcpkg and validates no debug dependencies in shipped DLLs

Issue #20: Add stype_in to Live API subscribe methods

  • New overloads for SubscribeAsync, SubscribeWithReplayAsync, SubscribeWithSnapshotAsync on both ILiveClient and ILiveBlockingClient
  • Enables continuous symbols (e.g., "MNQ.v.0" with SType.Continuous)
  • Fully backward compatible — existing overloads default to SType.RawSymbol

Install

dotnet add package Databento.Client --version 5.2.3

v5.2.2

27 Feb 04:22

Choose a tag to compare

Fix DllNotFoundException for native libraries (Issue #17)

Changes

  • Rewrite .targets file — Use explicit <Copy> tasks instead of fragile <None> + CopyToOutputDirectory for reliable native DLL deployment from NuGet packages
  • Add buildTransitive support — Transitive package consumers now also get native DLLs copied to output
  • Improved diagnosticsNativeLibraryLoader now throws DllNotFoundException with detailed search path info, OS/arch, and dependency status instead of silently failing

Install

dotnet add package Databento.Client --version 5.2.2

v5.2.0

25 Jan 22:57

Choose a tag to compare

What's New

New Feature: keepZip option for BatchDownloadAsync (Issue #15)

Added a new overload to BatchDownloadAsync that creates a zip archive of downloaded files:

// Download and create a zip archive
var paths = await client.BatchDownloadAsync(outputDir, jobId, keepZip: true);
var zipPath = paths[0];  // Returns path to {jobId}.zip

Behavior:

  • Downloads all files from the batch job
  • Creates a local {jobId}.zip archive containing all files
  • Deletes the extracted files after zipping
  • Returns the path to the zip file

Non-Breaking Change

This release uses default interface implementation (C# 8+), so existing code that implements IHistoricalClient will continue to work without modification.

Documentation

  • Updated API_REFERENCE.md with new method signature and examples
  • Updated API_Classification.md with method details
  • Added BatchDownloadKeepZip.Example demonstrating the feature

Full Changelog: v5.1.4...v5.2.0

v5.1.1

16 Dec 03:01

Choose a tag to compare

Patch release to fix README badges in NuGet package.

v5.1.0

16 Dec 02:53

Choose a tag to compare

Release v5.1.0: Fix SecurityMasterRecord JSON Deserialization

Bug Fixes

Fixed JSON deserialization errors in SecurityMasterRecord when calling ReferenceClient.SecurityMaster.GetLastAsync():

Field Before After Reason
LotSize int? decimal? API returns Number (can be 1.0)
VotePerSec int? decimal? API returns Number (can be 1.0)
SharesOutstanding long? string? API returns String
SharesOutstandingDate DateOnly? string? API returns String

Installation

dotnet add package Databento.Client --version 5.1.0

v4.3.0: Fix BlockUntilStoppedAsync and StopAsync behavior

10 Dec 03:06

Choose a tag to compare

What's New

Bug Fixes

  • Fixed BlockUntilStoppedAsync and StopAsync behavior (#9)
    • BlockUntilStoppedAsync() now correctly blocks until StopAsync() is called
    • BlockUntilStoppedAsync(timeout) properly waits for the specified timeout duration
    • Implemented TaskCompletionSource-based signaling matching C++ BlockForStop behavior

Documentation

  • Added Client Lifecycle section clarifying that clients cannot be restarted after stopping
  • Added BlockUntilStoppedAsync usage examples for event-based streaming patterns
  • Updated API Reference and AI Coding Agents guide

Changes

  • LiveClient.cs - Added _stoppedTcs TaskCompletionSource field and updated StopAsync/BlockUntilStoppedAsync
  • BacktestingClient.cs - Applied same pattern for consistency

Installation

dotnet add package Databento.Client --version 4.3.0

Full Changelog

v4.2.0...v4.3.0

v4.1.1 - Documentation Overhaul

29 Nov 06:52

Choose a tag to compare

What's Changed

Documentation Overhaul

  • API_REFERENCE.md: Simplified from 3,723 → 364 lines (90% reduction) - now serves as quick-start guide
  • API_Classification.md: Updated for v4.1.1, added resilience methods, architecture diagram shows .NET 8.0/9.0
  • README.md: Complete symbol mapping examples for Live, LiveBlocking, and Historical clients

Details

  • Added WithKeyFromEnv() to all builder tables
  • Added resilience methods to LiveClientBuilder documentation:
    • WithAutoReconnect(bool)
    • WithRetryPolicy(RetryPolicy)
    • WithHeartbeatTimeout(TimeSpan)
    • WithResilienceOptions(ResilienceOptions)

NuGet Package: https://www.nuget.org/packages/Databento.Client/4.1.1