[OSPP][Go] Implement ahead of time codegen for fury go serialization
Feature Request
The current Fury Go uses reflection to implement serialization and deserialization of structs, but reflection has performance limitations. In languages like Java, Fury accelerates execution performance by dynamically generating code at runtime.
However, in Golang, generating code at runtime requires generating assembly code, which involves high complexity in development and maintenance. In the industry, the primary approach is to generate code ahead of time during compilation, typically using tools like go generate to produce code, as in libraries like ffjson for JSON processing.
This project aims to implement similar code generation capabilities for Fury's binary serialization protocol. By parsing structs at compile time and targeting Fury's cross-language binary protocol, the goal is to generate corresponding serialization and deserialization code to enhance the execution efficiency of the entire serialization process.
Is your feature request related to a problem? Please describe
No response
Describe the solution you'd like
Implement metadata parsers for Struct/List/Map. Implement code generators for Struct/List/Map. Extend the serializer Dispatcher to support dispatching to the generated serializers
More details can be found in static codegen for compatible mode in spec https://fury.apache.org/docs/specification/fury_xlang_serialization_spec#fast-deserialization-for-static-languages-without-runtime-codegen-support
Describe alternatives you've considered
No response
Additional context
No response