-
Notifications
You must be signed in to change notification settings - Fork 358
feat(go): new golang xlang serialization implementation #3063
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
Merged
chaokunyang
merged 32 commits into
apache:main
from
chaokunyang:align_go_with_java_serialization
Dec 19, 2025
Merged
feat(go): new golang xlang serialization implementation #3063
chaokunyang
merged 32 commits into
apache:main
from
chaokunyang:align_go_with_java_serialization
Dec 19, 2025
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
2bd346e to
26b04a6
Compare
pandalee99
approved these changes
Dec 19, 2025
LiangliangSui
approved these changes
Dec 19, 2025
22 tasks
- Change Deserialize to take target parameter directly - Change DeserializeFrom to take target parameter directly - Remove convertSlice and convertMap functions - Add readArrayValue for direct array deserialization - Remove SerializeAny, DeserializeAny, DeserializeFromAny - Keep Marshal/Unmarshal as convenience aliases
a19780a to
11b1341
Compare
The generated Read method only read the type ID with ReadVaruint32(), but for NAMED_STRUCT types, writeTypeInfo also writes namespace and typename metadata. This caused hash mismatch errors during deserialization because the reader was off by the size of the metadata bytes. Changes: - Export ReadTypeInfo and WriteTypeInfo methods in TypeResolver - Update codegen to call ReadTypeInfo instead of just ReadVaruint32 - Remove debug output from pointer.go - Regenerate test serializers with the fix
- Fix C++ code style in type_resolver.h and xlang_test_main.cc - Fix Java code style in XlangTestBase.java - Fix GoXlangTest to work on Windows by adding .exe extension and using proper command prefix for Windows platform
- Add Go Xlang Test CI job similar to C++ Xlang Test - Skip GoXlangTest by default unless FORY_GO_JAVA_CI=1 is set - This prevents Go xlang tests from running in regular Java CI
3abab4a to
77800ec
Compare
9284067 to
74d0b3c
Compare
This was referenced Dec 20, 2025
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Why?
The existing Go serialization implementation needed to be aligned with the xlang serialization specification for proper cross-language interoperability.
What does this PR do?
xlang_test_main.go)GoXlangTestand sharedXlangTestBasefor cross-language verificationtest_cross_language.rs)xlang_test_main.cc)Related issues
#1017
#2982
Closes #3013
Closes #3014
Does this PR introduce any user-facing change?
Benchmark
N/A