Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
17 changes: 17 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,22 @@
# Changelog

## 0.48.0 - 2026-01-27

### Enhancements
- Added initial support for splitting DBN files:
- Added new `SplitEncoder` that supports synchronous and asynchronous encoding
- Added new `Splitter` trait that allows for extensible splitting of files while
reusing the `SplitEncoder` boilerplate.
- Added `SchemaSplitter`, `SymbolSplitter`, and `TimeSplitter` which allow for
different methods of splitting DBN files
- Added split support to the CLI. For example:
`dbn mbo.dbn --split-by week --output-pattern '{date}.json'` --json
- Added new publisher for Blue Ocean ATS (`OCEA_MEMOIR_OCEA`)

### Bug fixes
- Fixed issue where `AsyncDynReader` instances created from `with_buffer()` would only
decode the first frame of multi-frame Zstandard files

## 0.47.0 - 2026-01-20

### Enhancements
Expand Down
43 changes: 22 additions & 21 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ resolver = "2"
[workspace.package]
authors = ["Databento <support@databento.com>"]
edition = "2021"
version = "0.47.0"
version = "0.48.0"
documentation = "https://databento.com/docs"
repository = "https://github.com/databento/dbn"
license = "Apache-2.0"
Expand Down
2 changes: 1 addition & 1 deletion python/pyproject.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[project]
name = "databento-dbn"
version = "0.47.0"
version = "0.48.0"
description = "Python bindings for encoding and decoding Databento Binary Encoding (DBN)"
readme = "README.md"
requires-python = ">=3.10"
Expand Down
9 changes: 5 additions & 4 deletions rust/dbn-cli/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -16,15 +16,16 @@ name = "dbn"
path = "src/main.rs"

[dependencies]
dbn = { path = "../dbn", version = "=0.47.0", default-features = false }
dbn = { path = "../dbn", version = "=0.48.0", default-features = false }

anyhow = { workspace = true }
anyhow.workspace = true
clap = { version = "4.5", features = ["derive", "wrap_help"] }
serde = { workspace = true, features = ["derive"] }
zstd = { workspace = true }
time.workspace = true
zstd.workspace = true

[dev-dependencies]
assert_cmd = "2.1"
predicates = "3.1"
rstest = { workspace = true }
tempfile = "3.24"
rstest.workspace = true
12 changes: 12 additions & 0 deletions rust/dbn-cli/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -62,6 +62,18 @@ dbn equs-mini-20250331.dbn equs-mini-20250401.dbn equs-mini-20250402.dbn -o equs
```
The only limitation is they must be from the same dataset.

### Splitting DBN files
You can also split one DBN file into several by passing `--split-by`/`-S` with a split method and
`--output-pattern`/`-O` with a pattern for the output file names.
```sh
# By schema, such as from a live data capture
dbn opra-pillar-20260114.dbn.zst --split-by schema --output-pattern 'opra-pillar-2026114.{schema}.dbn.zst'
# By time
dbn opra-pillar-202512.ohlcv-1s.dbn.zst --split-by day --output-pattern 'opra-pillar-{date}.ohlcv-1s.dbn.zst'
# By symbol, with the short argument forms
dbn equs-mini-20260114.dbn.zst -S symbol -O 'equs-mini-2026014-{symbol}.dbn.zst'
```

### Compressing the output
In addition to reading Zstandard-compressed files, `dbn` can also write compressed JSON and CSV.

Expand Down
Loading