Skip to content

Preserve typed map keys in MessagePack and binary archives - #756

Merged
liuzicheng1987 merged 1 commit into
munich-data-engineering:mainfrom
Altren:feat/typed-binary-map-keys
Oct 25, 2026
Merged

liuzicheng1987 merged 1 commit into
munich-data-engineering:mainfrom
Altren:feat/typed-binary-map-keys

Conversation

@Altren

@Altren Altren commented Oct 24, 2026

Copy link
Copy Markdown
Contributor

Serialize map keys as typed values in MessagePack, cereal, YAS, and Boost.Serialization. This avoids numeric/string conversions and preserves floating-point key precision. Shared map parsing uses explicit map-entry contexts; the unused string-key archive readers are removed.

Compatibility: This intentionally changes the wire format for numeric keys, with no backward-compatibility layer. Other backends, including CBOR, retain their current representation.

Performance: a minor improvement in existing string-key workloads (mostly 1–4% faster)

Add an optional backend capability for parsing and writing map keys as values. Enable it for MessagePack, cereal, YAS, and Boost.Serialization without a legacy string-key compatibility path. Cover precision, validation, nested maps, wire formats, and truncation; document the change and the existing CBOR DOM limitation.
@Altren

Altren commented Oct 24, 2026

Copy link
Copy Markdown
Contributor Author

Macos failure due to vcpgk hiccup, not a real issue

@liuzicheng1987

Copy link
Copy Markdown
Collaborator

@Altren thanks

@liuzicheng1987
liuzicheng1987 merged commit 2e6411b into munich-data-engineering:main Oct 25, 2026
175 of 176 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants