Skip to content

Releases: Alparse/databento-dotnet

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

v4.1.0 - Production Release

29 Nov 03:31

Choose a tag to compare

🚀 Production Release - v4.1.0

This is the first stable production release of databento-dotnet.

✨ New Features

  • .NET 9 Support: Now targets both .NET 8 and .NET 9
  • Resilience Features: Comprehensive connection resilience (opt-in, non-breaking)
    • RetryPolicy class with exponential backoff and jitter
    • ResilienceOptions for configuring auto-reconnect behavior
    • ConnectionHealthMonitor for detecting stale connections
    • New builder methods: WithAutoReconnect(), WithRetryPolicy(), WithHeartbeatTimeout(), WithResilienceOptions()
    • Pre-built policies: RetryPolicy.Default, RetryPolicy.Aggressive, ResilienceOptions.HighAvailability

🐛 Bug Fixes

  • CRITICAL: Fixed SEHException (STATUS_STACK_BUFFER_OVERRUN) crash during LiveClient disposal
    • Implemented proper thread synchronization using databento-cpp's BlockForStop() method
    • await using pattern now works reliably without crashes

📦 Installation

dotnet add package Databento.Client --version 4.1.0

📚 Documentation

See CHANGELOG.md for full details.

v4.0.1-beta

26 Nov 03:35

Choose a tag to compare

v4.0.1-beta Pre-release
Pre-release

v4.0.1-beta

Overview

This release adds new replay examples and updates badges. All Bug*_Proof.Internal validation projects confirmed working correctly.

What's New

  • ✅ Added 5 new replay examples for live streaming demonstrations
  • ✅ LiveStreaming.Replay.Example - Full replay demo with trade display
  • ✅ LiveBlocking.Replay.Example - Blocking pattern with replay
  • ✅ LiveAuthentication.Replay.Example - Authentication flow demo
  • ✅ LiveStreaming.Readme.Replay.Example - Simplified README-style example
  • ✅ LiveThreaded.ExceptionCallback.Replay.Example - Exception handling with replay

Bug Fixes

  • Fixed LiveStreaming.Replay.Example not completing execution (removed blocking Console.ReadKey())
  • Enhanced trade data display across all replay examples

Improvements

  • Updated downloads badge to 5.4K
  • Updated version badges to v4.0.1-beta
  • Improved .gitignore patterns for internal examples

Validation

All Bug*_Proof.Internal projects validated successfully:

  • Bug1: GLBX.MDP3 Ohlcv1D (172 bars)
  • Bug3: GLBX.MDP3 Trades with Parent symbology (100 trades)
  • Bug4: GLBX.MDP3 ALL_SYMBOLS definitions
  • Bug5: XEUR.EOBI FGBM.FUT definitions
  • Bug6: IFEU.IMPACT BRN.FUT definitions (42,000+ records)
  • Bug7: IFEU.IMPACT Statistics schema (20,000+ records)

Installation

NuGet Package

dotnet add package Databento.Client --version 4.0.1-beta

.csproj Reference

<PackageReference Include="Databento.Client" Version="4.0.1-beta" />

Full Changelog

v4.0.0-beta...v4.0.1-beta