pigeon
Code generator tool to make communication between Flutter and the host platform type-safe and easier.
28.0.0
1000K downloads/mo
#77 most downloaded on pub.dev
flutter/packages
What this package is like to depend on
Last release 2 days ago
21 Aug 2026
Ships fairly regularly
a new release about every 2 weeks
Nearly every release is documented
notes for 251 of 251 stable releases
1 version withdrawn
withdrawn after publishing
7 years old
262 releases · first in 2020
31 releases in the last 12 months
see the full history below
Release timeline
262 releases · Feb 2020 to Aug 2026Releases
latest 60 of 262-
28.0.021 Aug 2026Release notes
Open source →Adds support for modern async method styles in swift and kotlin. This is now the default. Also adds a new annotation
AsyncCallbackthat reverts to the old style.precursor to #11352
Release notes
Open source →- Breaking Change Updates Kotlin and Swift generators to generate
suspendfunctions andasync throwssignatures for@FlutterApimethods by default, and for@HostApimethods annotated with@async.- Use
@asyncCallbackif callback-style signatures are required.
- Use
- Breaking Change Updates Kotlin and Swift generators to generate
-
27.3.219 Aug 2026Release notes
Open source →Part of fixing flutter/flutter#183945.
Regenerating pigeon files will fix issue.
Pre-Review Checklist
Note: The Flutter team is currently trialing the use of Gemini Code Assist for GitHub. Comments from the
gemini-code-assistbot should not be taken as authoritative feedback from the Flutter team. If you find its comments useful you can update your code accordingly, but if you are unsure or disagree with the feedback, please feel free to wait for a Flutter team member's review for guidance on which automated comments should be addressed.Release notes
Open source →- [dart] Fixes lint warning from unused codec variable in Dart proxy classes.
-
27.3.117 Aug 2026Release notes
Open source →- Updates
analyzerdependency to support versions 13 and 14. - Updates minimum Dart SDK constraint to 3.11.0.
- Updates
-
27.3.021 Jul 2026 -
27.2.017 Jul 2026 -
27.1.213 Jul 2026Release notes
Open source →- Reports a clear error when an input file uses an enhanced enum (one with a constructor, fields, methods, or arguments on its values), instead of silently generating incorrect output.
-
27.1.109 Jul 2026Release notes
Open source →- [dart] Adds usage documentation to generated event channel methods, and emits the user's documentation comments on them.
-
27.1.011 Jun 2026 -
27.0.010 Jun 2026Release notes
Open source →- Breaking Change Overrides
toString(or equivalent) methods on generated data classes- This can conflict with custom
descriptionimplementations in Swift.
- This can conflict with custom
- [swift] Updates
isNullishto handle double nestedAny?values. - Updates minimum supported SDK version to Flutter 3.38/Dart 3.10.
- Breaking Change Overrides
-
26.3.408 Apr 2026Release notes
Open source →- [kotlin] Updates generated error class to inherit from
RuntimeExceptioninstead ofThrowable, for better Java interoperability.
- [kotlin] Updates generated error class to inherit from
-
26.3.328 Mar 2026 -
26.3.226 Mar 2026 -
26.3.125 Mar 2026 -
26.3.025 Mar 2026Release notes
Open source →- Optimizes and improves data class equality and hashing.
- Changes hashing and equality methods to behave consistently across platforms.
- Adds equality methods to previously unsupported languages.
-
26.2.311 Mar 2026Release notes
Open source →- Produces a helpful error message when a method return type is missing or an unsupported type, such as a function type or record type.
-
26.2.111 Mar 2026 -
26.2.009 Mar 2026 -
26.1.1002 Mar 2026Release notes
Open source →- Dramatically reduces the number of File write operations sent to the operating system during code-generation. This improves performance of IDEs and the Dart analysis server.
-
26.1.902 Mar 2026 -
26.1.826 Feb 2026 -
26.1.722 Jan 2026 -
26.1.518 Dec 2025Release notes
Open source →- [kotlin] Fixes a "bridge method" warning when implementing an event stream handler.
-
26.1.404 Dec 2025Release notes
Open source →- [swift][kotlin] Fixes crash that occurs when an object that is removed from the instance manager calls to Dart.
-
26.1.304 Dec 2025Release notes
Open source →- [dart] Fixes error from constructor parameter sharing name with attached field for a ProxyApi.
- Updates minimum supported SDK version to Flutter 3.35/Dart 3.9.
-
26.1.221 Nov 2025Release notes
Open source →- [kotlin] Fixes compilation error with unbounded type parameter for InstanceManager.
-
26.1.118 Nov 2025Release notes
Open source →- Updates supported
analyzerversions to 8.x or 9.x. - Updates minimum supported SDK version to Flutter 3.32/Dart 3.8.
- Updates supported
-
26.1.012 Nov 2025Release notes
Open source →- Deprecates
dartHostTestHandleranddartTestOut.- If you have a use case where this cannot easily be replaced with a mock or fake of the generated Dart API, please provide details in https://github.com/flutter/flutter/issues/178322.
- Deprecates
-
26.0.506 Nov 2025Release notes
Open source →- [kotlin] Serialize custom enums as
Longinstead ofIntto avoidClassCastExceptionon decoding.
- [kotlin] Serialize custom enums as
-
26.0.406 Nov 2025 -
26.0.304 Nov 2025 -
26.0.213 Oct 2025Release notes
Open source →- [kotlin] Fixes support for classes that override equals and hashCode for ProxyApis.
- [kotlin] Adds error message log when a new Dart proxy instance fails to be created.
- Updates minimum supported SDK version to Flutter 3.29/Dart 3.7.
-
26.0.111 Aug 2025Release notes
Open source →- Improves documentation of
ProxyApiannotation and internal Dart ProxyAPI helper functions. - Moves helper functions for generating Dart portion of ProxyAPIs.
- Improves documentation of
-
26.0.017 Jul 2025Release notes
Open source →- Breaking Change [dart] Changes name of constructors used to create subclasses of ProxyApis to
pigeon_**original_name**. - [dart] Adds ProxyApi overrides classes to be used in Flutter unit tests.
- Breaking Change [dart] Changes name of constructors used to create subclasses of ProxyApis to
-
25.5.018 Jun 2025Release notes
Open source →- [dart] Changes the default InstanceManager and its initialization to no longer make a message call when used in a Flutter unit test.
-
25.4.017 Jun 2025Release notes
Open source →- [gobject] Adds type id constants in header files so that they can be used by the user.
- Updates minimum supported SDK version to Flutter 3.27/Dart 3.6.
-
25.3.215 May 2025Release notes
Open source →- [dart] Fixes null pointer crashes/exceptions caused by premature finalization of Dart instances for ProxyApis.
-
25.3.117 Apr 2025Release notes
Open source →- [kotlin] Fixes Kotlin InstanceManager not properly removing callbacks from handler.
- [kotlin] Fixes
SyntheticAccessorlint caused by private utility methods.
-
25.3.008 Apr 2025Release notes
Open source →- [swift] Adds equality methods to generated data classes.
- [dart, kotlin] Shortens equality methods.
-
25.2.027 Mar 2025 -
25.1.020 Mar 2025 -
25.0.017 Mar 2025Release notes
Open source →- Breaking Change Removes
oneLanguagefield fromPigeonOptions. - Separates internal options classes from user facing options.
- Adds
mergeDefinitionFileOptionsparameter torunWithOptionsmethod. - Relocates
injectOverflowTypesto non-public facing method.
- Breaking Change Removes
-
24.2.206 Mar 2025 -
24.2.118 Feb 2025Release notes
Open source →- [dart] Fixes potential race condition caused by a ProxyApi constructor message call being made in an async method.
-
24.2.015 Feb 2025Release notes
Open source →- Adjusts task queues to use a shared task queue for all methods in a single API instance, to give the same ordering guarantees as non-task-queue usage.
- [swift] Adds task queue support to the Swift generator.
-
24.1.110 Feb 2025Release notes
Open source →- [swift, kotlin] Adds an error message when a ProxyAPI callback method that returns a non-null value is nullable.
- [swift, kotlin] Adds an error message in the
ProxyApiBaseCodecwhen an instance could not be retrieved when reading a value. - [swift, kotlin] Fixes ProxyAPI platform APIs not calling completion when creating a new instance.
-
24.1.006 Feb 2025Release notes
Open source →- [kotlin, swift] Adds annotation options to omit shared classes used in Event Channels.
-
24.0.003 Feb 2025Release notes
Open source →- Breaking Change Relocates some files in
libthat were not intended for direct client use tolib/src.
- Breaking Change Relocates some files in
-
23.0.003 Feb 2025Release notes
Open source →- Breaking Change [swift] Fixes a compile error about PigeonError's sendability conformance in Swift 6.
- PigeonError's init now requires the "details" argument to be Sendable.
- Breaking Change [swift] Fixes a compile error about PigeonError's sendability conformance in Swift 6.
-
22.7.423 Jan 2025 -
22.7.318 Jan 2025 -
22.7.202 Jan 2025Release notes
Open source →- Updates README to discuss best practices for using Pigeon-generated code.
-
22.7.127 Dec 2024Release notes
Open source →- [swift] Adds support for platform checks of imports of ProxyApis.
- Updates minimum supported SDK version to Flutter 3.22/Dart 3.4.
-
22.7.005 Dec 2024Release notes
Open source →- [swift, kotlin] Adds event channel support.
- [swift, kotlin] Adds
sealedclass inheritance support. - [swift] Updates codec class names to be upper camel case.
-
22.6.404 Dec 2024 -
22.6.303 Dec 2024 -
22.6.222 Nov 2024Release notes
Open source →- Removes the
@protectedannotation from the InstanceManager field of thePigeonInternalProxyApiBaseClass.
- Removes the
-
22.6.112 Nov 2024Release notes
Open source →- [gobject] Moves class declarations to the header to work around a bug in some versions of glib.
-
22.6.023 Oct 2024 -
22.5.011 Oct 2024 -
22.4.203 Oct 2024Release notes
Open source →- Updates
README.mdto replace the deprecatedflutter pub run pigeoncommand withdart run pigeon.
- Updates