Skip to content

feat(xlang): use xlang as default mode for all languages#3685

Merged
chaokunyang merged 12 commits into
apache:mainfrom
chaokunyang:enable_xlang_mode_for_all_lang
May 17, 2026
Merged

feat(xlang): use xlang as default mode for all languages#3685
chaokunyang merged 12 commits into
apache:mainfrom
chaokunyang:enable_xlang_mode_for_all_lang

Conversation

@chaokunyang
Copy link
Copy Markdown
Collaborator

@chaokunyang chaokunyang commented May 16, 2026

Why?

Fory 1.0 should make xlang the default path so new users get the cross-language wire format and compatible schema evolution without extra configuration. Native modes remain available for same-language workloads that need language-specific object features or native-only wire formats.

What does this PR do?

  • Defaults Java, Python, Go, and Rust runtime construction to xlang mode, with explicit native-mode opt-outs for same-language serialization paths.
  • Keeps Swift on the xlang-only path by removing the public xlang configuration switch and always writing/expecting the xlang header.
  • Updates tests across Java, Python, Go, Rust, Swift, C++, Scala, and integration fixtures so native-mode expectations opt out explicitly.
  • Refreshes the xlang, Java native-mode, schema metadata, configuration, and type-registration docs across runtimes for the new default.
  • Adds or renames schema metadata guide pages and removes stale migration/native-mode docs that no longer match the 1.0 model.

Related issues

#1017

AI Contribution Checklist

  • Substantial AI assistance was used in this PR: yes / no
  • If yes, I included a completed AI Contribution Checklist in this PR description and the required AI Usage Disclosure.
  • If yes, my PR description includes the required ai_review summary and screenshot evidence of the final clean AI review results from both fresh reviewers on the current PR diff or current HEAD after the latest code changes.

Does this PR introduce any user-facing change?

  • Does this PR introduce any public API change?
  • Does this PR introduce any binary protocol compatibility change?

Benchmark

Not run; this PR changes defaults, tests, and documentation rather than benchmark logic.

@chaokunyang chaokunyang changed the title feat: default runtimes to xlang mode feat: use xlang as default mode for all languages May 17, 2026
@chaokunyang chaokunyang changed the title feat: use xlang as default mode for all languages feat(xlang): use xlang as default mode for all languages May 17, 2026
@chaokunyang chaokunyang force-pushed the enable_xlang_mode_for_all_lang branch from 8380a5b to fe097d5 Compare May 17, 2026 08:09
@chaokunyang chaokunyang merged commit 06d60db into apache:main May 17, 2026
145 of 146 checks passed
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