Skip to content

Commit 5f28c2a

Browse files
chore: release v0.12.0 (#77)
* chore: release v0.12.0 * Improve changelogs --------- Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: Frank McSherry <fmcsherry@me.com>
1 parent d971f4e commit 5f28c2a

File tree

4 files changed

+45
-3
lines changed

4 files changed

+45
-3
lines changed

CHANGELOG.md

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,35 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
77

88
## [Unreleased]
99

10+
## [0.12.0](https://github.com/frankmcsherry/columnar/compare/columnar-v0.11.1...columnar-v0.12.0) - 2026-03-25
11+
12+
### Added
13+
14+
- Structured decoding via `DecodedStore`, a zero-allocation random-access view into indexed-encoded data, with constant-instruction-count field access regardless of tuple width ([#78](https://github.com/frankmcsherry/columnar/pull/78), [#79](https://github.com/frankmcsherry/columnar/pull/79))
15+
- `FromBytes::validate` implementations for `Fixeds`, `Strides`, `Empties`, `Bools`, and `Discriminant`; `Stash::try_from_bytes` as the validated constructor ([#85](https://github.com/frankmcsherry/columnar/pull/85))
16+
- `Discriminant::is_heterogenous()` and homogeneous enum optimization: enum containers now skip per-element discriminant and offset metadata when all elements share the same variant
17+
- `no_std` support (with `alloc`) ([#94](https://github.com/frankmcsherry/columnar/pull/94))
18+
- `BorrowedOf` type alias, mirroring the existing `ContainerOf` ([#81](https://github.com/frankmcsherry/columnar/pull/81))
19+
- `Strides::pop` for unsealing lists at merge boundaries ([#98](https://github.com/frankmcsherry/columnar/pull/98))
20+
- `Strings::get_str()` convenience method for when you want `&str` with explicit validation ([#88](https://github.com/frankmcsherry/columnar/pull/88))
21+
- Trait implementations for `Repeats` and `Lookback` types ([#91](https://github.com/frankmcsherry/columnar/pull/91))
22+
- Additional `Bytes`/`Stash` properties and methods ([#97](https://github.com/frankmcsherry/columnar/pull/97))
23+
24+
### Changed
25+
26+
- `Strings::Ref` changed from `&str` to `&[u8]` — UTF-8 validation at index time caused up to 17x slowdown and blocked compiler optimizations ([#86](https://github.com/frankmcsherry/columnar/pull/86))
27+
- `element_sizes` now returns `Result`, defaulting to `Err` for unimplemented types — previously missing implementations silently accepted any byte length ([#80](https://github.com/frankmcsherry/columnar/pull/80))
28+
- Decoding pipeline preserves `u64` alignment throughout, making field casts infallible and enabling dead-code elimination of unused fields ([#78](https://github.com/frankmcsherry/columnar/pull/78))
29+
- Refreshed `Trees` container and its JSON example to current conventions ([#92](https://github.com/frankmcsherry/columnar/pull/92), [#93](https://github.com/frankmcsherry/columnar/pull/93))
30+
- Removed vestigial `const N: usize` generic from `Repeats` ([#91](https://github.com/frankmcsherry/columnar/pull/91))
31+
32+
### Removed
33+
34+
- `HeapSize` trait, replaced by `AsBytes` which exposes actual byte slices rather than capacity metrics ([#87](https://github.com/frankmcsherry/columnar/pull/87))
35+
- `EncodeDecode` trait and `Sequence` encoding format, superseded by the `indexed` module ([#78](https://github.com/frankmcsherry/columnar/pull/78))
36+
- `from_u64s`, `decode_u64s`, and `from_byte_slices` methods, replaced by `DecodedStore`/`from_store` ([#79](https://github.com/frankmcsherry/columnar/pull/79))
37+
- `inspect` module
38+
1039
## [0.11.1](https://github.com/frankmcsherry/columnar/compare/columnar-v0.11.0...columnar-v0.11.1) - 2026-01-17
1140

1241
### Other

Cargo.toml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "columnar"
3-
version = "0.11.1"
3+
version = "0.12.0"
44
authors = ["Frank McSherry <fmcsherry@me.com>"]
55
description = "Conversion from arrays of complex structs to simple structs of arrays"
66
edition = "2021"
@@ -19,7 +19,7 @@ members = ["columnar_derive", "test-no-std"]
1919
serde = { version = "1.0", optional = true, features = ["derive"] }
2020
smallvec = { version = "1.13.2", features = ["const_generics"] }
2121
bytemuck = { version = "1.20", features = ["min_const_generics"] }
22-
columnar_derive = { path = "columnar_derive", version = "0.11" }
22+
columnar_derive = { path = "columnar_derive", version = "0.12" }
2323

2424
[dev-dependencies]
2525
bencher = "0.1.5"

columnar_derive/CHANGELOG.md

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,19 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
77

88
## [Unreleased]
99

10+
## [0.12.0](https://github.com/frankmcsherry/columnar/compare/columnar_derive-v0.11.1...columnar_derive-v0.12.0) - 2026-03-25
11+
12+
### Added
13+
14+
- Derive support for `from_store` (structured decoding) ([#79](https://github.com/frankmcsherry/columnar/pull/79))
15+
- Derive support for `extend_for_self` on enum types ([#82](https://github.com/frankmcsherry/columnar/pull/82))
16+
17+
### Changed
18+
19+
- Generated code uses fully scoped paths (`::core::result::Result`, etc.) to avoid naming conflicts and support `no_std` ([#96](https://github.com/frankmcsherry/columnar/pull/96))
20+
- Generated `FromBytes` implementations use compile-time-constant byte slice counts ([#78](https://github.com/frankmcsherry/columnar/pull/78))
21+
- Consolidated scalar fields and streamlined naming in generated code ([#88](https://github.com/frankmcsherry/columnar/pull/88))
22+
1023
## [0.11.0](https://github.com/frankmcsherry/columnar/compare/columnar_derive-v0.10.2...columnar_derive-v0.11.0) - 2025-09-29
1124

1225
### Other

columnar_derive/Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "columnar_derive"
3-
version = "0.11.1"
3+
version = "0.12.0"
44
authors = ["Frank McSherry <fmcsherry@me.com>"]
55
description = "Derive macros for columnar crate"
66
edition = "2021"

0 commit comments

Comments
 (0)