Skip to content

[Go] Row format support for Go #3376

@chaokunyang

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

No one assigned

    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