Releases: Alparse/databento-dotnet
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" />Full Changelog
v4.0.0-beta - Breaking Change: 64-bit RawInstrumentId
🚨 Breaking Change
InstrumentDefMessage.RawInstrumentId changed from uint to ulong to support venues with 64-bit instrument IDs.
Why?
European venues like Eurex (XEUR.EOBI) use 64-bit IDs that exceed uint.MaxValue.
Example: Eurex spread ID 0x010002B100000060 = 72,060,553,270,394,976 > 4,294,967,295
Quick Fix (30 seconds)
// OLD
uint rawId = instrumentDef.RawInstrumentId;
// NEW
ulong rawId = instrumentDef.RawInstrumentId;Most users unaffected: Code using var continues to work unchanged.
See MIGRATION_GUIDE_v4.md for details.
✨ What's New
3 New Examples
- IntradayReplay2.Example - LiveClient streaming with replay mode
- Get_Most_Recent_Market_Open.Example - Market open time calculation
- List_Available_Schemas.Example - Schema discovery via MetadataListSchemas
Improvements
- InstrumentDefinitionDecoder.Example → Renamed to "OHLCV Bar Decoder" (properly demonstrates OHLCV-1S schema)
- TestsScratchpad.Internal → Fixed stream lifetime management
- Documentation → Improved LiveClient vs LiveBlockingClient distinction
- API_REFERENCE.md → Added 5 complete working examples (487 lines)
📦 Installation
dotnet add package Databento.Client --version 4.0.0-beta📋 Full Changelog
Changed (BREAKING):
- InstrumentDefMessage.RawInstrumentId:
uint→ulong
Added:
- 3 new example projects
- Complete working examples in API_REFERENCE.md
Fixed:
- InstrumentDefinitionDecoder.Example renamed and rewritten
- TestsScratchpad.Internal stream lifetime management
- Documentation improvements
📚 Resources
v3.0.29-beta - Symbology Parameter Support
What's New
Added symbology parameter support to historical data queries, enabling filtering by instrument type using parent symbology.
Features
- ✨ New
GetRangeAsyncoverloads withstypeInandstypeOutparameters - ✨ New
GetRangeToFileAsyncoverloads with symbology parameters - ✨ Parent symbology support (e.g.,
ES.FUTfor all E-mini S&P 500 futures,QQQ.OPTfor all QQQ options) - ✨ Full-stack implementation from C++ wrapper through C API to C# interface
Examples
- 📚 Added
FuturesFilter.Exampledemonstrating parent symbology usage - 📚 Added
ParentSymbolValidatorfor input validation with typo correction - 📚 Added
GetParentSymbolshelper for discovering available parent symbols - 📚 Comprehensive documentation and README
Technical Details
- Non-breaking change: Added as new method overloads
- Proper exception handling via channel propagation
- Supports dataset-specific symbology combinations (GLBX.MDP3, OPRA.PILLAR)
Usage Example
```csharp
await foreach (var record in client.GetRangeAsync(
dataset: "GLBX.MDP3",
schema: Schema.Trades,
symbols: new[] { "ES.FUT" },
startTime: startTime,
endTime: endTime,
stypeIn: SType.Parent,
stypeOut: SType.InstrumentId))
{
// All records are from ES futures only
}
```
See filter.md for quick reference and examples/FuturesFilter.Example/ for complete example.
Documentation: https://databento.com/docs/standards-and-conventions/symbology
v3.0.26-beta - Quality Improvements & Clean Production Build
🎯 Quality Improvements Release
This release adds industry-standard NuGet quality indicators and ensures clean production DLL without debug logging.
✨ What's New
NuGet Quality Indicators:
- ✅ Source Link: Debug directly into library source code from GitHub
- ✅ Deterministic Builds: Reproducible builds for security verification
- ✅ Symbol Packages: Enhanced debugging with .snupkg symbol packages
- ✅ Compiler Flags: Embedded build metadata for transparency
Critical Fixes:
- ✅ Clean Production DLL: Replaced debug DLL (784K) with production version (789K)
- ✅ No Debug Logging: Removed all
[C++ DEBUG]messages from native library - ✅ Verified Examples: All 33 example projects tested and passing
📦 Package Information
Main Package: Databento.Client.3.0.26-beta
Symbols Package: Databento.Client.3.0.26-beta.snupkg (auto-downloaded by debuggers)
🔧 Installation
dotnet add package Databento.Client --version 3.0.26-betaOr add to your .csproj:
<ItemGroup>
<PackageReference Include="Databento.Client" Version="3.0.26-beta" />
</ItemGroup>📊 Impact
- Zero functional changes - Metadata and quality improvements only
- 100% backward compatible - No API changes from v3.0.24-beta
- Enhanced debugging - Step into library code while debugging
- Improved trust - Reproducible builds, deterministic output
- Better discoverability - Quality badges on NuGet.org
🎁 For Developers
When debugging code that uses this library, your IDE can now:
- Automatically download source files from GitHub
- Set breakpoints in library code
- Step through the actual implementation
- Inspect variables in library context
No configuration needed - it just works! ✨
📚 Previous Fixes (Still Included)
All fixes from v3.0.24-beta and earlier:
- ✅ Fixed AccessViolationException in Historical and Batch APIs
- ✅ Bundled VC++ runtime DLLs (no manual installation needed)
- ✅ Enhanced error handling and logging
🧪 Testing
- All 33 example projects build successfully
- Clean DLL verified (789KB, no debug messages)
- Comprehensive example test report generated
- Zero regressions detected
Full Changelog: v3.0.24-beta...v3.0.26-beta
v3.0.24-beta - Critical Bug Fix Release
Critical Bug Fix
RESOLVED: AccessViolationException crash in Historical and Batch APIs when server returns warning headers.
What's Fixed
- ✅ Historical API with future dates now works (was crashing)
- ✅ Batch API error handling now safe (was at risk)
- ✅ All 33 examples passing (up from 32/33)
- ✅ Server warnings now visible on stderr
Changes
- Created StderrLogReceiver for safe logging across all client types
- Updated all 4 native wrappers (Historical, Batch, LiveBlocking, LiveThreaded)
- Enhanced diagnostic logging with DEBUG-level visibility
- Log format changed: stdout → stderr,
INFO:→[Databento INFO]
Compatibility
- ✅ Zero API changes - fully backward compatible
- ✅ No breaking changes
⚠️ ~10% of users may need to update log redirection scripts (see migration guide)
Installation
dotnet add package Databento.Client --version 3.0.24-beta --prereleaseTesting
- 33/33 examples passing (100% success rate)
- Zero functionality regressions
- Zero performance regressions
Documentation
- See CHANGELOG.md for full details
- See RELEASE_NOTES_v3.0.24-beta.md for comprehensive release notes
- See LOG_FORMAT_VERIFICATION.md for migration guide
Closes #1
NuGet: https://www.nuget.org/packages/Databento.Client/3.0.24-beta
Commit: aa93f93