Giter Site home page Giter Site logo

databento / dbn Goto Github PK

View Code? Open in Web Editor NEW
65.0 11.0 9.0 1.28 MB

Databento Binary Encoding (DBN) - Fast message encoding and storage format for market data

Home Page: https://databento.com

License: Apache License 2.0

Rust 91.56% Shell 0.20% Python 8.24%
encoding rust serialization tick-data zero-copy market-data databento low-latency zstd storage

dbn's Introduction

dbn

build Documentation license Current Crates.io Version pypi-version Slack

Databento Binary Encoding (DBN) is an extremely fast message encoding and storage format for normalized market data. The DBN specification includes a simple, self-describing metadata header and a fixed set of struct definitions, which enforce a standardized way to normalize market data.

All official Databento client libraries use DBN under the hood, both as a data interchange format and for in-memory representation of data. DBN is also the default encoding for all Databento APIs, including live data streaming, historical data streaming, and batch flat files.

This repository contains both libraries and a CLI tool for working with DBN files and streams. Python bindings for dbn are provided in the databento_dbn package.

For more details, read our introduction to DBN.

Features

  • Performant binary encoding and decoding
  • Highly compressible with Zstandard
  • Extendable fixed-width schemas

Usage

See the respective READMEs for usage details:

License

Distributed under the Apache 2.0 License.

dbn's People

Contributors

cjdsellers avatar naomi-danielle avatar nmacholl avatar renan-databento avatar thomas-k-cameron avatar threecgreen avatar zcqian avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

dbn's Issues

sync encoder does not encode using the symbol_cstr_len for DBN v2 (?)

Bug Report

Expected Behavior

metadata encoder to use the metadata.symbol_cstr_len as length for the fixed length strings.

Actual Behavior

the metadata encoder picks a fixed length for the strings based on version, and ignores the symbol_cstr_len for this purpose, it does serialize symbol_cstr_len tho. to me it looks like if the user sets symbol_cstr_len to something which would be a optimal/good size for their strings, then the decoding would fail, because the decoder actually reads symbol_cstr_len and assumes that the strings are of that size.

Steps to Reproduce the Problem

  1. look here https://github.com/databento/dbn/blob/main/rust/dbn/src/encode/dbn/sync.rs#L255 to see that the size is fixed even for V2
  2. for decoding, one should note that the string size is first decoded, and then used to the code the strings https://github.com/databento/dbn/blob/main/rust/dbn/src/decode/dbn/sync.rs#L475

Specifications

  • dbn version: 2

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.