Skip to content

Conversation

@chaokunyang
Copy link
Collaborator

@chaokunyang chaokunyang commented Jan 31, 2026

Why?

  • Align IDL auto-ID handling to use stable 32-bit hash names rather than numeric IDs when IDs are auto-generated.
  • Update meta string EXTENDED payload handling for number strings across languages.

What does this PR do?

  • Add package ... alias ... parsing and propagate the alias through schema/validators; compute auto IDs for messages/unions/enums using a 32-bit Murmur hash of namespace.type (alias-aware) and detect collisions.
  • Change code generators to register auto-ID types by name (empty namespace + hash string) and treat auto-ID types as NAMED types in union type IDs; update registration comments.
  • Refresh meta string encoding/decoding across runtimes (EXTENDED payload byte, number-string handling, zero-length optimization) and update related tests.
  • Fix C++ TypeMeta name serialization to use meta string encoders and align Dart/Rust/Go tests/build paths with the updated encoding.
  • Update compiler and protocol docs, regenerate IDL fixtures, and extend IDL round-trip tests (including enum coverage).

Related issues

#3099

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

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