Youmanvi opened a new pull request, #3474:
URL: https://github.com/apache/fory/pull/3474
## Why?
Pre-proposal PoC for GSoC 2026. Demonstrates that the Go Standard Row
Format implementation is feasible and produces bytes wire-compatible with the
Java reference implementation before the full project is
scoped.
## What does this PR do?
Adds `go/fory/row/` with a working subset of the Standard Row Format:
- Null bitmap read/write (`bit=1 = null`, matching Java `BitUtils`)
- Fixed-width slot encoding for `bool`, `int8/16/32/64`, `float32/64`,
`date32`, `timestamp`, `duration`
- Variable-width slot encoding (`relativeOffset << 32 | size`) for
`string` and `binary`
- Fixed-width and variable-width arrays
- Map layout (`keysSize` prefix + keys array + values array)
- Nested row embedding
Adds `BinaryRowCrossLangTest.java` with four golden-byte tests that encode
rows in Java and assert the
exact hex, which the Go tests decode and verify field-by-field.
Not included: `Decimal`/`Interval` types, schema integration, performance
optimizations.
## Related issues
N/A
## Does this PR introduce any user-facing change?
- [x] Yes, new `go/fory/row` package.
## Does this PR introduce any public API change?
- [x] Yes, new package. No existing APIs modified.
## Does this PR introduce any binary protocol compatibility change?
- [ ] No. Strictly follows the existing spec; Java golden tests enforce
byte-exact compatibility.
## Benchmark
N/A for PoC.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]