NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
pub.dev · #471 most downloaded on pub.dev
Code generator tool to make communication between Flutter and the host platform type-safe and easier.
Last release 3 days ago
02 Oct 2026
Ships fairly regularly
a new release about every 3 weeks
Nearly every release is documented
notes for 60 of the last 60 stable releases
1 version withdrawn
withdrawn after publishing
7 years old
270 releases · first in 2020
One column per quarter.
[swift, kotlin] Adds event channel support.
sealed class inheritance support.[swift] Fixes the channel names of the named constructors of ProxyApis.
Replaces deprecated collection method usage.
Removes the @protected annotation from the InstanceManager field of the PigeonInternalProxyApiBaseClass.
@protected annotation from the InstanceManager field of the
PigeonInternalProxyApiBaseClass.[gobject] Moves class declarations to the header to work around a bug in some versions of glib.
[swift] Adds includeErrorClass to SwiftOptions.
includeErrorClass to SwiftOptions.[swift] Adds implementation for @ProxyApi.
@ProxyApi.Updates README.md to replace the deprecated flutter pub run pigeon command with dart run pigeon.
README.md to replace the deprecated flutter pub run pigeon command with dart run pigeon.[dart] Fixes bug where special handling of ints is ignored if no custom types are used.
Adds support for non-nullable types in collections.
Adds support for enums and classes in collections.
[kotlin] Adds implementation for @ProxyApi.
@ProxyApi.Allows generation of classes that aren't referenced in an API.
Breaking Change [swift] Changes generic map to nullable keys of AnyHashable to conform to other platforms.
map to nullable keys of AnyHashable to conform to other platforms.Removes restriction on number of custom types.
Object from generics.varPrefix and classMemberNamePrefix.* Adds GObject (Linux) support.
Breaking Change [cpp] Fixes style of enum names. References to enum values will need to be updated to EnumType.kValue style, instead of the previous E…
EnumType.kValue style, instead of the previous
EnumType.value.[java] Adds equals and hashCode support for data classes.
equals and hashCode support for data classes.[cpp] Fixes handling of null class arguments.
Breaking Change Limits the number of total custom types to 126.
@unchecked Sendable to codec method.[kotlin] Adds the @JvmOverloads to the HostApi setUp method. This prevents the calling Java code from having to provide an empty String as Kotlin prov
@JvmOverloads to the HostApi setUp method. This prevents the calling Java code from having to provide an empty String as Kotlin provides it by default[dart] Updates PigeonInstanceMangerApi to use the shared api channel code.
PigeonInstanceMangerApi to use the shared api channel code.Breaking Change [swift] Removes FlutterError in favor of PigeonError.
FlutterError in favor of PigeonError.Fixes unnecessary calls of toList and fromList when encoding/decoding data classes.
toList and fromList when encoding/decoding data classes.list.Breaking Change [dart] Changes FlutterApi setup to setUp.
FlutterApi setup to setUp.[swift] Adds @SwiftClass annotation to allow choice between struct and class for data classes.
@SwiftClass annotation to allow choice between struct and class for data classes.[dart] Adds implementation for @ProxyApi.
@ProxyApi.[objc] Fixes double prefixes added to enum names.
[swift] Separates message call code generation into separate methods.
Removes heap allocation in generated C++ code.
[kotlin] Adds includeErrorClass to KotlinOptions.
includeErrorClass to KotlinOptions.Breaking Change [kotlin] Converts Kotlin enum case generation to SCREAMING_SNAKE_CASE.
writeEnum function to adhere to Kotlin naming conventions.Adds ProxyApi to AST generation.
[swift] Improve style of Swift output.
[kotlin] Separates message call code generation into separate methods.
[dart] Separates message call code generation into separate methods.
[dart] Fixes test generation for missing wrapResponse method if only host Api.
Breaking Change [java] Updates all Void return types to use new VoidResult.
VoidResult type for Void returns.Void return types to use new VoidResult.* Fixes new lint warnings.
Prevents optional and non-positional parameters in Flutter APIs.
[java] Adds @CanIgnoreReturnValue annotation to class builder.
Breaking Change [kotlin] Updates Flutter API to use new errorClassName.
Updates minimum supported SDK version to Flutter 3.10/Dart 3.0.
Breaking change [dart] Renames locally defined host API variables.
codec changed to pigeonChannelCodec.isEnum and isClass to TypeDeclarations.FlutterError generation being tied to ErrorOr.Adds compatibility with analyzer 6.x.
analyzer 6.x.[kotlin] Removes unnecessary ;s in generated code.
;s in generated code.Breaking Change [objc] Eliminates boxing of non-nullable primitive types (bool, int, double). Changes required:
Xcode do not appear to warn about
implicit NSNumber * to BOOL conversions, so code that is no longer
correct after this breaking change may compile without warning. For example,
myGeneratedClass.aBoolProperty = @NO can silently set aBoolProperty to
YES. Any data class or Flutter API interactions involving bools should
be carefully audited by hand when updating.[swift] Adds protocol for Flutter APIs.
Breaking Change [kotlin] Flutter API methods now return Result .
Result<return-type>.Result<return-type, FlutterError>.Reply class from all method returns and replaces it with Result.
Reply callbacks with Result classes that contain both success and failure methods.NullableResult class for all nullable method returns.
NullableResult rather than Result.setup method to setUp.nil response on error.<api>Setup to SetUp<api>.Adds pub topics to package metadata.
Breaking Change [objc] Changes all nullable enums to be boxed in custom classes.
Fixes generation failures when an output file is in a directory that doesn't already exist.
[dart] Fixes import in generated test output when overriding package name.
Adds package name to method channel strings to avoid potential collisions between plugins.
pigeonOptions.Adds generic Object field support to data classes.
Object field support to data classes.[swift] Fixes a crash when passing null for nested nullable classes.
null for nested nullable classes.Updates README to better reflect modern usage.
[objc] Adds macOS support to facilitate code sharing with existing iOS plugins.
Requires analyzer 5.13.0 and replaces use of deprecated APIs.
analyzer 5.13.0 and replaces use of deprecated APIs.[swift] Breaking Change A raw List (without generic type argument) in Dart will be translated into [Any?] (rather than [Any]).
Any to represent Optional.List (without generic type argument) in Dart will be
translated into [Any?] (rather than [Any]).Map (without generic type argument) in Dart will be
translated into [AnyHashable:Any?] (rather than [AnyHashable:Any]).Your coding agent can read these notes before it upgrades. Set up the MCP server →