Releases: Alparse/databento-dotnet
v5.3.0
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:string→DateTimeOffsetSchemaDateRange.End:string→DateTimeOffset- Added
SchemaDateRange.Durationcomputed property (matchesDatasetRange.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 toDurationon bothDatasetRangeandSchemaDateRangeto 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
Fixes & Features
Issue #18: Fix native DLL loading failures (debug builds)
- Root cause:
libcrypto-3-x64.dll,libssl-3-x64.dll,zstd.dll,legacy.dllwere debug builds requiringVCRUNTIME140D.dll/ucrtbased.dll(only available with Visual Studio) - All native DLLs rebuilt as Release configuration
- Removed unused
zlib1.dll - Improved
NativeLibraryLoaderdiagnostics with debug-build detection
Issue #19: Fix build-native.ps1 vcpkg/FetchContent conflict
- Added
vcpkg.jsonmanifest 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,SubscribeWithSnapshotAsyncon bothILiveClientandILiveBlockingClient - Enables continuous symbols (e.g.,
"MNQ.v.0"withSType.Continuous) - Fully backward compatible — existing overloads default to
SType.RawSymbol
Install
dotnet add package Databento.Client --version 5.2.3v5.2.2
Fix DllNotFoundException for native libraries (Issue #17)
Changes
- Rewrite
.targetsfile — Use explicit<Copy>tasks instead of fragile<None>+CopyToOutputDirectoryfor reliable native DLL deployment from NuGet packages - Add
buildTransitivesupport — Transitive package consumers now also get native DLLs copied to output - Improved diagnostics —
NativeLibraryLoadernow throwsDllNotFoundExceptionwith detailed search path info, OS/arch, and dependency status instead of silently failing
Install
dotnet add package Databento.Client --version 5.2.2v5.2.0
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}.zipBehavior:
- Downloads all files from the batch job
- Creates a local
{jobId}.ziparchive 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.Exampledemonstrating the feature
Full Changelog: v5.1.4...v5.2.0
v5.1.1
v5.1.0
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.0v4.3.0: Fix BlockUntilStoppedAsync and StopAsync behavior
What's New
Bug Fixes
- Fixed
BlockUntilStoppedAsyncandStopAsyncbehavior (#9)BlockUntilStoppedAsync()now correctly blocks untilStopAsync()is calledBlockUntilStoppedAsync(timeout)properly waits for the specified timeout duration- Implemented TaskCompletionSource-based signaling matching C++
BlockForStopbehavior
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_stoppedTcsTaskCompletionSource field and updatedStopAsync/BlockUntilStoppedAsyncBacktestingClient.cs- Applied same pattern for consistency
Installation
dotnet add package Databento.Client --version 4.3.0Full Changelog
v4.1.1 - Documentation Overhaul
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
🚀 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)
RetryPolicyclass with exponential backoff and jitterResilienceOptionsfor configuring auto-reconnect behaviorConnectionHealthMonitorfor 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 usingpattern now works reliably without crashes
- Implemented proper thread synchronization using databento-cpp's
📦 Installation
dotnet add package Databento.Client --version 4.1.0📚 Documentation
See CHANGELOG.md for full details.
v4.0.1-beta
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" />