Skip to content

[pigeon] Native Interop #182230

Description

@tarrinneal

Add FFI and JNI support.

Native Interop features/issues needed

FFI essential features

  • Add FFIgen config generator
  • Add logic for handling every type crossing between platform and dart for FFI
  • Add custom class support
  • Add enum support
  • Add Codec for untyped data
  • Add synchronous Host Api method support
  • Add Async Host Api method support
  • Add synchronous Flutter Api support
  • Add Async Flutter Api support

JNI essential features

  • Add JNIgen config generator
  • Add logic for handling every type crossing between platform and dart for JNI
  • Add custom class support
  • Add enum support
  • Add Codec for untyped data
  • Add synchronous Host Api method support
  • Add Async Host Api method support
  • Add synchronous Flutter Api support
  • Add Async Flutter Api support

After

  • Stay updated to latest versions of ffi tools
  • Fix various Dart optional/named parameter options
  • Significant code cleanup
  • Address ergonomics of multi-generation process
  • Write docs and how-to
  • Significant reviews and adjustments based on those reviews
  • Address significant performance issues related to large classes

FFI

  • Fix SwiftFunction annotation

JNI

  • Rewrite config generator to use Dart instead of YAML
  • Rewire error handling to allow for better error information

Metadata

Metadata

Assignees

Labels

P1High-priority issues at the top of the work listp: pigeonrelated to pigeon messaging codegen toolteam-ecosystemOwned by Ecosystem teamtriaged-ecosystemTriaged by Ecosystem team
No fields configured for Feature.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions