Skip to content

[Go] Row format support for Go #3376

Description

@chaokunyang

Feature Request

Implement standard Fory row format support for Go.

Is your feature request related to a problem? Please describe

Go runtime currently lacks standard row format read/write support, which prevents full row-format interoperability with existing standard row format implementations and limits random-access row processing in Go services.

Describe the solution you'd like

Add standard row format support in Go based on docs/specification/row_format_spec.md.

Scope:

  • Implement row encode/decode for standard format.
  • Implement standard array/map/nested-struct layout handling.
  • Support null bitmap semantics, fixed 8-byte field slots, and relative offset+size for variable-width fields.
  • Enforce 8-byte alignment and deterministic padding behavior.
  • Add cross-language compatibility tests with Java as reference endpoint.
  • Add CI coverage for Go row format tests and interoperability tests.

Out of scope:

  • Compact row format.

Describe alternatives you've considered

Using only reflection-based object serialization was considered, but it does not provide standard row format compatibility or efficient row-level random access required for cross-language row processing.

Additional context

docs/specification/row_format_spec.md

Metadata

Metadata

Assignees

Labels

enhancementNew feature or requestgoPull requests that update go code

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions