Skip to content

feat(dart): add dart IDL support#3571

Merged
chaokunyang merged 16 commits intoapache:mainfrom
chaokunyang:dart_schema_idl
Apr 15, 2026
Merged

feat(dart): add dart IDL support#3571
chaokunyang merged 16 commits intoapache:mainfrom
chaokunyang:dart_schema_idl

Conversation

@chaokunyang
Copy link
Copy Markdown
Collaborator

@chaokunyang chaokunyang commented Apr 15, 2026

Why?

What does this PR do?

  • Add dart IDL support
  • Add nested containter type info annotation support

Related issues

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

# Conflicts:
#	compiler/fory_compiler/cli.py
@chaokunyang chaokunyang changed the title feat(dart): add IDL codegen and integration coverage feat(dart): add dart IDL support Apr 15, 2026
Add Dart as a supported language across all four compiler doc files:
- index.md: overview text, quick start examples, cross-language type table
- compiler-guide.md: CLI options, supported languages table, output
  structure, build integration (pubspec.yaml + build_runner), troubleshooting
- schema-idl.md: all ~20 cross-language mapping tables (types, modifiers,
  collections, nested types, refs)
- generated-code.md: full Dart section with output layout, type generation
  (messages, enums, unions, typed arrays, ref annotations), registration,
  usage example, and cross-language notes tables
Run prettier on markdown tables and ruff on dart generator to match
CI formatting requirements.
Move TypeIds out of type_resolver.dart into its own file under
lib/src/meta/ to eliminate unnecessary dependency on the heavy
type_resolver module from low-level files like field_type.dart,
hash_util.dart, primitive_serializers.dart, and
typed_array_serializers.dart.
The TypeIds class was moved from type_resolver.dart to meta/type_ids.dart
and is now re-exported from fory.dart, so the prefixed resolver import is
no longer needed.
@chaokunyang chaokunyang merged commit c5eb38f into apache:main Apr 15, 2026
62 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