Skip to content

Commit 4b776ae

Browse files
authored
VER: Release 0.48.0
2 parents b91ea04 + 446d44c commit 4b776ae

File tree

17 files changed

+1930
-111
lines changed

17 files changed

+1930
-111
lines changed

CHANGELOG.md

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,22 @@
11
# Changelog
22

3+
## 0.48.0 - 2026-01-27
4+
5+
### Enhancements
6+
- Added initial support for splitting DBN files:
7+
- Added new `SplitEncoder` that supports synchronous and asynchronous encoding
8+
- Added new `Splitter` trait that allows for extensible splitting of files while
9+
reusing the `SplitEncoder` boilerplate.
10+
- Added `SchemaSplitter`, `SymbolSplitter`, and `TimeSplitter` which allow for
11+
different methods of splitting DBN files
12+
- Added split support to the CLI. For example:
13+
`dbn mbo.dbn --split-by week --output-pattern '{date}.json'` --json
14+
- Added new publisher for Blue Ocean ATS (`OCEA_MEMOIR_OCEA`)
15+
16+
### Bug fixes
17+
- Fixed issue where `AsyncDynReader` instances created from `with_buffer()` would only
18+
decode the first frame of multi-frame Zstandard files
19+
320
## 0.47.0 - 2026-01-20
421

522
### Enhancements

Cargo.lock

Lines changed: 22 additions & 21 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ resolver = "2"
1111
[workspace.package]
1212
authors = ["Databento <support@databento.com>"]
1313
edition = "2021"
14-
version = "0.47.0"
14+
version = "0.48.0"
1515
documentation = "https://databento.com/docs"
1616
repository = "https://github.com/databento/dbn"
1717
license = "Apache-2.0"

python/pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[project]
22
name = "databento-dbn"
3-
version = "0.47.0"
3+
version = "0.48.0"
44
description = "Python bindings for encoding and decoding Databento Binary Encoding (DBN)"
55
readme = "README.md"
66
requires-python = ">=3.10"

rust/dbn-cli/Cargo.toml

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -16,15 +16,16 @@ name = "dbn"
1616
path = "src/main.rs"
1717

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

21-
anyhow = { workspace = true }
21+
anyhow.workspace = true
2222
clap = { version = "4.5", features = ["derive", "wrap_help"] }
2323
serde = { workspace = true, features = ["derive"] }
24-
zstd = { workspace = true }
24+
time.workspace = true
25+
zstd.workspace = true
2526

2627
[dev-dependencies]
2728
assert_cmd = "2.1"
2829
predicates = "3.1"
29-
rstest = { workspace = true }
3030
tempfile = "3.24"
31+
rstest.workspace = true

rust/dbn-cli/README.md

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,18 @@ dbn equs-mini-20250331.dbn equs-mini-20250401.dbn equs-mini-20250402.dbn -o equs
6262
```
6363
The only limitation is they must be from the same dataset.
6464

65+
### Splitting DBN files
66+
You can also split one DBN file into several by passing `--split-by`/`-S` with a split method and
67+
`--output-pattern`/`-O` with a pattern for the output file names.
68+
```sh
69+
# By schema, such as from a live data capture
70+
dbn opra-pillar-20260114.dbn.zst --split-by schema --output-pattern 'opra-pillar-2026114.{schema}.dbn.zst'
71+
# By time
72+
dbn opra-pillar-202512.ohlcv-1s.dbn.zst --split-by day --output-pattern 'opra-pillar-{date}.ohlcv-1s.dbn.zst'
73+
# By symbol, with the short argument forms
74+
dbn equs-mini-20260114.dbn.zst -S symbol -O 'equs-mini-2026014-{symbol}.dbn.zst'
75+
```
76+
6577
### Compressing the output
6678
In addition to reading Zstandard-compressed files, `dbn` can also write compressed JSON and CSV.
6779

0 commit comments

Comments
 (0)