Table of Contents

API reference

Every public member of the four packages, generated from the XML documentation in the source.

That reference is unusually complete for a first pass, and not through diligence: GenerateDocumentationFile and TreatWarningsAsErrors are both on for all four projects, so a public member without a documentation comment has never compiled in this repository. There is no undocumented corner to find.

Namespaces

Namespace Package Contents
DatabentoDotNet all four ApiKey, Symbols, SymbolsKind, UserAgent — the types every transport shares
DatabentoDotNet.Dbn .Dbn Record structs, enums, DbnDecoder, Metadata, DbnTime, symbol maps
DatabentoDotNet.Dbn.Publishers .Dbn Generated publisher, dataset and venue tables
DatabentoDotNet.Live .Live LiveClient, Subscription, the gateway and its protocol types
DatabentoDotNet.Historical .Historical HistoricalClient and its four subclients, and the parameter records they take
DatabentoDotNet.Historical.Json .Historical The JsonConverter<T> implementations the HTTP payloads are read through
DatabentoDotNet.Reference .Reference ReferenceClient, security master, corporate actions, adjustment factors, and the generated code tables
DatabentoDotNet.Reference.Json .Reference The JsonConverter<T> implementations the reference payloads are read through

The two .Json namespaces hold converters, not contexts. Every JsonSerializerContext in this library is internal sealed partial and lives in its package's Internal/ folder, so none of them appears here. What is public is the 26 JsonConverter<T> implementations those contexts register through [JsonSourceGenerationOptions], and that the reference enums name directly on themselves with [JsonConverter]SecurityType and the nine other code types share one ReferenceCodeJsonConverter<T> closed over each.

They are documented because they are reachable, not because they are an entry point: nothing in either namespace is meant to be constructed or called directly. Read them when you want to know exactly which wire spelling a value round-trips as — each one says, and says what an unrecognised value does.

Reading the record structs

The record types in DatabentoDotNet.DbnTradeMsg, Mbp1Msg, OhlcvMsg and the rest — document fields whose types are the wire layout. A ulong timestamp field is a ulong because the wire carries eight bytes there, and it stays one.

Two things about them that no single member's remarks can state, because both are properties of the whole library:

  • Zero-Copy and Allocation — a RecordRef points into the read buffer and is valid until the next call on the decoder. Violating that reads stale bytes rather than throwing.
  • Timestamps and Prices — why nothing here takes a DateTime, and the three sentinels that survive a naive conversion.