Skip to content

feat(xlang): add bfloat16 support#3605

Merged
chaokunyang merged 12 commits intoapache:mainfrom
chaokunyang:bfloat16_support
Apr 22, 2026
Merged

feat(xlang): add bfloat16 support#3605
chaokunyang merged 12 commits intoapache:mainfrom
chaokunyang:bfloat16_support

Conversation

@chaokunyang
Copy link
Copy Markdown
Collaborator

@chaokunyang chaokunyang commented Apr 22, 2026

Why?

Add cross-language bfloat16 support alongside the existing reduced-precision float16 support so reduced-precision scalars and dense arrays can round-trip across runtimes with spec-backed behavior and documentation.

What does this PR do?

  • adds bfloat16 scalar and array/list carriers plus serializer/type-resolution wiring in Java, C++, C#, Python, Go, and Rust, with the generated/object-codec paths updated where needed
  • extends xlang and schema-evolution handling for reduced-precision fields, including array skip logic and field-ordering/type-id fixes required for consistent cross-language behavior
  • adds cross-language coverage for reduced-precision structs and updates runtime tests across the touched implementations
  • refreshes the xlang specification, type-mapping docs, and language guides/READMEs to document bfloat16 and reduced-precision array support

Related issues

#1017
Closes #3286
Closes #3283
Closes #3285

AI Contribution Checklist

  • Substantial AI assistance was used in this PR: yes / no
  • If yes, I included a completed AI Contribution Checklist in this PR description and the required AI Usage Disclosure.
  • If yes, my PR description includes the required ai_review summary and screenshot evidence of the final clean AI review results from both fresh reviewers on the current PR diff or current HEAD after the latest code changes.

Does this PR introduce any user-facing change?

  • Does this PR introduce any public API change?
  • Does this PR introduce any binary protocol compatibility change?

Benchmark

@chaokunyang chaokunyang merged commit ad80be2 into apache:main Apr 22, 2026
68 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.

[C++] add bfloat16 and bfloat16_array [Rust] add bfloat16 and bfloat16_array [Java] add bfloat16 and bfloat16_array

2 participants