Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Doc][Spec] fury java serialization spec #1238

Merged
merged 1 commit into from
Dec 20, 2023

Conversation

chaokunyang
Copy link
Collaborator

@chaokunyang chaokunyang commented Dec 18, 2023

What do these changes do?

This PR formalize fury java specification with following changes:

There are still more improvement space in fury java protocol, such improvements will be added in a follow-up PR.

Related issue number

#1239

Check code requirements

  • tests added / passed (if needed)
  • Ensure all linting tests pass, see here for how to run them

@theweipeng theweipeng merged commit fd67af5 into apache:main Dec 20, 2023
@chaokunyang chaokunyang changed the title [Doc][Spec] fury java spec [Doc][Spec][1/2] fury java spec Dec 20, 2023
@chaokunyang chaokunyang changed the title [Doc][Spec][1/2] fury java spec [Doc][Spec] fury java serialization spec Dec 20, 2023
chaokunyang added a commit that referenced this pull request Feb 28, 2024
<!--
Thank you for your contribution!

Please review https://github.com/alipay/fury/blob/main/CONTRIBUTING.rst
before opening a pull request.
-->

## What do these changes do?
This PR refine fury java serialization format spec. The cross-language
object graph serialization spec is similar and will be added in a later
PR, but it needs more discuss.

This PR added some new spec which hasn't been implemented in current
java implementation:
- chunk-by-chunk predictive map serialization: #925
- layed class meta
- new class meta encoding
- #1229 
- object serialization with schema evolution support by auto meta share.

Some parts has been omitted in this spec:
- object serialization with schema evolution support by write field in a
KV like pattern: this will be replaced by schema evolution mode
described in this spec in the future.

Currently fury doesn't provide binary compatibility, the spec may be
revised in the future.

<!-- Please give a short brief about these changes. -->

## Related issue number

<!-- Are there any issues opened that will be resolved by merging this
change? -->
Closes #1239 

#1238

## Check code requirements

- [ ] tests added / passed (if needed)
- [ ] Ensure all linting tests pass, see
[here](https://github.com/alipay/fury/blob/main/CONTRIBUTING.rst) for
how to run them

---------

Co-authored-by: Twice <twice@apache.org>
@chaokunyang chaokunyang deleted the new_fury_java_spec branch April 1, 2024 06:29
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants