chaokunyang opened a new issue, #2192:
URL: https://github.com/apache/fury/issues/2192

   ### Feature Request
   
   1) Background:
   Fury is a high-performance serialization library that supports 
cross-language binary protocols. Currently, Go-based applications are gradually 
increasing. Go language is widely used for its performance, while also facing 
serialization challenges that need to be compatible with different versions and 
type structures. For Go language serialization, ensuring forward and backward 
compatibility of types is crucial for long-term project evolution and 
multi-version support.
   (2) Existing Work:
   Currently, Fury has implemented efficient serialization and deserialization 
in languages such as Java/Python/NodeJS, but related work in Rust is still in 
its early stages, only supporting serialization and deserialization when object 
type schemas are strictly consistent. As projects expand and complexity grows, 
the serialization scheme needs to be more complete and efficient to support 
version evolution.
   (3) Existing Shortcomings:
   The current Fury Rust serialization mechanism does not fully support forward 
and backward compatibility of structural types. When types are updated, there 
is a lack of adaptation mechanisms to handle added or removed fields to ensure 
the stability and consistency of serialized data. At the same time, the 
efficient sharing mechanism of metadata has not yet formed best practices.
   (4) Desired Improvements:
   We hope to implement a type-compatible mechanism based on metadata sharing, 
enabling Fury Rust serialization to support dynamic type updates while ensuring 
compatibility between different versions. Through efficient metadata sharing 
methods, implement intelligent serialization handling for added, modified, and 
removed fields to reduce the development burden and operational risks brought 
by version changes.
   (5) Final Project Implementation Goals:
   The ultimate goal is to implement a serialization framework for Fury Rust 
that supports forward and backward compatibility of types. This framework will 
utilize the metadata sharing mechanism of the Fury binary serialization 
protocol. The implementation can reference Fury Java/NodeJS and other language 
implementations, ultimately automatically adapting to changes in type 
structures, ensuring that data between different versions can be correctly 
serialized and deserialized, and enhancing the breadth and depth of Fury's 
application in the Go ecosystem.
   
   ### Is your feature request related to a problem? Please describe
   
   _No response_
   
   ### Describe the solution you'd like
   
   _No response_
   
   ### Describe alternatives you've considered
   
   _No response_
   
   ### Additional context
   
   _No response_


-- 
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]

Reply via email to