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
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions