PackageTrack
Sign in Get early access

ffigen

Generator for FFI bindings, using LibClang to parse C, Objective-C, and Swift files.

21.0.0 1.1M downloads/mo #342 most downloaded on pub.dev dart-lang/native

What this package is like to depend on

Last release 28 days ago

27 Jul 2026

Release timing varies

gaps range from 2 weeks to 5 months

Nearly every release is documented

notes for 93 of 93 stable releases

Nothing withdrawn

no release was ever pulled

6 years old

118 releases · first in 2020

7 releases in the last 12 months

see the full history below

Release timeline

118 releases · Jul 2020 to Jul 2026
2021 2022 2023 2024 2025 2026
Release Pre-release

Releases

latest 60 of 118
  1. 21.0.0 27 Jul 2026
    Release notes
    • Propagate @Deprecated annotations from C/ObjC headers into generated Dart bindings. Deprecation messages from __attribute__((deprecated("msg"))) and API_DEPRECATED("msg", ...) are included in the annotation.
    • Breaking change: Remove deprecated useDartHandle field from FfiGenerator.
    • Breaking change: Remove unused includeSymbolAddress field from Categories, Interfaces, and Protocols.
    • Breaking change: Remove deprecated wrapperName field from NativeExternalBindings.
    • Breaking change: Certain synthetic USRs have been modified to ensure they cannot collide with real USRs. It's very unlikely that any user facing USRs are affected.
    • Enum struct members now have setters.
    • Breaking change: Dart const values will be generated for global variables marked const in C (e.g. static const int) instead of symbol lookups. This supports integers, doubles, and string literals. Including the variable name in the globals -> symbol-address configuration will still generate symbol lookups.
    • Fix a bug where block helpers were occasionally given unexpected names. Technically a breaking change because if you were affected by the bug, the block helper's name will change to something more sensible.
    • Breaking change: Deleted the config option Output.sort. Sorting is now always enabled.
    • Fix(https://github.com/dart-lang/native/issues/2877) such that ObjCObject isA now accepts a nullable ObjCObject? and returns false when called with null, aligning its behavior with Dart’s is operator.
    • Use xcrun for resolving macOS SDK paths, enabling support for non-standard Xcode installations. #3134
    • Add allocate constructor for native C structs: $allocate(Allocator $allocator, {required ...})
    • Fix a bug where ObjC classes with SWIFT_UNAVAILABLE annotated init/new methods were generating runtime-crashing no-arg constructors.
    • Fix a bug where methods marked with __attribute__((unavailable)) were incorrectly included in bindings when no platform version info was configured.
    • Add some more lint ignores to the generated bindings.
    • Fix a bug where the config option Protocols.includeTransitive was not working correctly.
    • Add compile time version checks to verify consistency of package:objective_c's versions vs FFIgen's generated code.
    • Fix a bug where ObjC bindings may not auto-load their dylib in some cases.
    • Fix memory leaks, deadlocks, and crashes that can happen in callbacks, if the target isolate is shut down.
    • Bump package:meta dependency to ^1.19.0 and stop generating experimental_member_use lint ignore in generated bindings when @RecordUse() is used.
    • Support versions 3.x of package:package_config.
    • Fix a bug where comments containing carriage return (\r) characters were not properly split, causing comment text to spill out of Dart doc comments.
    Open source →
  2. 21.0.0-dev.0 24 Apr 2026 pre-release

    Nothing published for this version

  3. 20.1.1 25 Nov 2025
    Release notes
    • Update tests and examples now that package:objective_c is using native assets.
    Open source →
  4. 20.1.0 19 Nov 2025
    Release notes
    • Add xcodeUri, iosSdkUri, and macSdkUri, to mirror xcodePath, iosSdkPath, and macSdkPath.
    • Export some missing elements from the config API.
    • Provide more convenience utils for building FFIgen configs: Declarations.excludeAll, Declarations.includeAll, Declarations.includeSet, Declarations.includeAllMembers, Declarations.includeMemberSet, Declarations.useOriginalName, Declarations.renameWithMap, Declarations.useMemberOriginalName, and Declarations.renameMemberWithMap.
    • Fix a bug where function pointer param names could collide with keywords.
    • Fix a bug where unnamed enum constants were being multiply defined.
    • Fix a bug in imported NS_OPTIONS enums.
    • Fix a bug in the internal variables generated by function bindings.
    • Fix a bug where types imported from package:objective_c could be renamed.
    Open source →
  5. 20.0.0 07 Nov 2025
    Release notes
    • Breaking change: Completely rewrite the public Dart API for FFIgen. The new API is focused on a declartive configuration: FfiGenerate(...) with a generate() method. The configuration describes everything w.r.t. to the FFIgen input and output. The generate method takes context parameters such as a logger and path to libclang. With this breaking change, also some defaults changed: (1) @Native bindings are now the default, and (2) struct/unions refered to by pointer will be generated as Opaque by default.
    • Breaking change: Rename some ObjC interface built in methods. Rename isInstance to isA, castFrom to as, and castFromPointer to fromPointer.
    • Breaking change: Change ObjC interfaces and protocols to generate as extension types. This gives a small performance boost, and in most cases won't require any code changes.
    • Breaking change: Change how ObjC protocols are generated, splitting the methods related to constructing instances into a separate Foo$Builder class. The protocol's instance methods are now directly invokable from the built object.
    • Breaking change: Minor breaking change in the way that ObjC interface methods are generated. Interface methods are now generated as extension methods instead of being part of the class. This shouldn't require any code changes unless you are using show or hide when importing the interface.
      • If you are using show/hide to show or hide a particular interface, eg Foo, you'll now also need to show or hide Foo$Methods.
      • In rare cases the runtime type of the Dart wrapper object around the ObjC object may change, but the underlying ObjC object will still be the same. In any case, you should be using Foo.isInstance(x) instead of x is Foo to check the runtime type of an ObjC object.
    • Breaking change: Minor breaking change where ObjC enums declared using NS_OPTIONS now default to generating int constants instead of a Dart enum. Users who cared about this distinction were likely already using enums.as-int for these enums. This change just provides a better default behavior, so is unlikely to cause any substantive code changes.
    • Breaking_change: The name collision resolution system has been overhauled to fix various bugs, and make the renaming more consistent. As a result, in some cases different names may be chosen when resolving collisions.
    • Breaking_change: Detect the ObjC error raising pattern, where the last param is NSError** error, capture any error returned, and throw it as a Dart NSErrorException.
    • Fix for opaque dependencies for struct/union const arrays.
    • Make the Logger argument of FfiGenerator.generate optional. It defaults to a logger printing to stdout and stderr.
    Open source →
  6. 20.0.0-dev.1 15 Oct 2025 pre-release

    Nothing published for this version

  7. 20.0.0-dev.0 02 Sep 2025 pre-release

    Nothing published for this version

  8. 19.1.0 22 Jul 2025
    Release notes
    • Bump minimum Dart version to 3.8.0.
    • Format using dart format so that the formatter uses the target package's Dart version and formatting options.
    • Add _ to the list of Dart keywords, since it has special meaning in newer Dart versions.
    • Update to the latest lints.
    Open source →
  9. 19.0.0 19 May 2025
    Release notes
    • Use package:objective_c 8.0.0.
    • Breaking change: Major change to the way ObjC methods are code-genned. Methods now use named parameters, making them more readable and closer to how they're written in ObjC. For example, the NSData method dataWithBytes:length: used to be generated as dataWithBytes_length_(Pointer<Void> bytes, int length), but is now generated as dataWithBytes(Pointer<Void> bytes, {required int length}). Protocol methods are not affected.
      • Migration tip: A quick way to find affected methods is to search for _(.
    • Make it easier for a downstream clone to change behavior of certain utils.
    • Fix a bug where types could occasionally show up as a generic ObjCObjectBase, when they were supposed to be codegenned as a more specific interface types.
    Open source →
  10. 18.1.0 08 Apr 2025
    Release notes
    • Fix a clang warning in ObjC protocol generated bindings.
    Open source →
  11. 18.0.0 11 Mar 2025
    Release notes
    • Use package:objective_c 7.0.0.
    • Add variable substitutions that can be used in the headers.entry-points to locate Apple APIs: $XCODE, $IOS_SDK, and $MACOS_SDK.
    • Add an empty constructor to all ObjC interfaces that have a new method, which just calls that method.
    • Breaking change: Change the usrTypeMappings field of Config's factory constructor from a List<ImportedType> to a Map<String, ImportedType>.
    • Add a keepIsolateAlive parameter to the block and protocol constructors that allows a block or protocol to keep its owner isolate alive.
    • Breaking change: keepIsolateAlive defaults to true, so all existing ObjC blocks and protocols now keep their isolates alive by default.
    • Change how protocols are implemented to fix a bug, by removing all uses of NSProxy.
    • Breaking change: Change how duplicate identifiers are renamed to match JNIgen. The main change is that $ is used as a delimiter now, to avoid renamed identifiers from colliding with other identifiers. For example, foo is renamed to foo$1 if there's already a foo in the namespace.
    • Fix a bug where blocking blocks could deadlock if invoked from the Flutter UI thread. Note that this relies on changes in Flutter that are currently only available in the main channel. These changes will likely be released in Flutter 3.31.0.
    Open source →
  12. 17.0.0 17 Feb 2025
    Release notes
    • Use package:objective_c 6.0.0
    • Support transitive categories of built-in types: https://github.com/dart-lang/native/issues/1820
    • Breaking change: Maintain protocol conformance when translating from ObjC to Dart. For example, ObjC's id<FooProtocol> is now translated to Dart's FooProtocol. Generally this shouldn't be a breaking change for code that is using protocols correctly, with a few caveats:
      • For more advanced use cases that use ObjCProtocolBuilder directly, after calling build() you will need to cast the generated object to the target protocol: FooProtocol.castFrom(protocolBuilder.build()).
      • Due to limitations in the Dart type system, only the first protocol of an id is used: id<FooProtocol, BarProtocol> becomes FooProtocol. The FooProtocol.castFrom method can help work around issues this may cause.
    • Fix the handling of global arrays to remove the extra pointer reference.
    • Add a max field to the external-versions config, and use it to determine which APIs are generated.
    • Add a runtime OS version check to ObjC APIs, which throws an error if the current OS version is earlier than the version that the API was introduced.
    Open source →
  13. 16.1.0 15 Jan 2025
    Release notes
    • Ensure that required symbols are available to FFI even when the final binary is linked with -dead_strip.
    • Handle dart typedefs in import/export of symbol files.
    • Add support for blocking ObjC blocks that can be invoked from any thread.
    • Add support for blocking ObjC protocol methods.
    • Remove explicit objc_retain calls from the generated bindings.
    Open source →
  14. 16.0.0 15 Nov 2024
    Release notes
    • Ensure all protocols referenced in bindings are available at runtime.
    • Use package:dart_style directly to format generated Dart code, rather than subprocessing to dart format.
    • Use package:objective_c 4.0.0
    • Fix various small bugs todo with config filters:
      • https://github.com/dart-lang/native/issues/1582
      • https://github.com/dart-lang/native/issues/1594
      • https://github.com/dart-lang/native/issues/1595
    • Fix a bug where nullable typealiases were treated as non-null.
    • Allow static and instance methods to have the same name: https://github.com/dart-lang/native/issues/1136
    • Breaking change: Change the way ObjC categories are generated. Instead of inserting their methods into the interface, generate Dart extension methods. For instance methods this makes no difference to user code (as long as the extension methods are imported correctly). But for static methods it means MyInterface.staticMethod must change to MyCategory.staticMethod. Categories are included/excluded by the objc-categories config entry.
    • Add include-transitive-objc-interfaces, include-transitive-objc-protocols, and include-transitive-objc-categories config flags, which control whether transitively included ObjC interfaces, protocols, and categories are generated.
    • Breaking change: include-transitive-objc-interfaces defaults to false, which changes the default behavior from pulling in all transitive deps, to generating them as stubs. include-transitive-objc-protocols defaults to false, and include-transitive-objc-categories defaults to true, but these both replicate the existing behavior.
    • Fix bugs caused by mismatches between ObjC and Dart's inheritance rules.
    Open source →
  15. 15.0.0 21 Oct 2024
    Release notes
    • Bump minimum Dart version to 3.4.
    • Dedupe ObjCBlock trampolines to reduce generated ObjC code.
    • Update to latest package:objective_c.
    • ObjC objects now include the methods from the protocols they implement. Both required and optional methods are included. Optional methods will throw an exception if the method isn't implemented.
    • Breaking change: Only generate ObjC protocol implementation bindings for protocols that are included by the config filters. This is breaking because previously super protocols would automatically get implementation bindings, rather than just being incorporated into the child protocol. If you want those implementation bindings, you may need to add the super protocol to your objc-protocols filters.
    • Fix a bug where ObjC listener blocks could be deleted after being invoked by ObjC but before the invocation was received by Dart: https://github.com/dart-lang/native/issues/1571
    • sort: config option now affects ObjC interface/protocol methods.
    • Fix a bug where NSRange was not being imported from package:objective_c: https://github.com/dart-lang/native/issues/1180
    • Breaking change: Return structs from ObjC methods by value instead of taking a struct return pointer.
    Open source →
  16. 14.0.1 11 Sep 2024
    Release notes
    • Fix bug with nullable types in ObjCBlock's type arguments: https://github.com/dart-lang/native/issues/1537
    • Fix a path normalization bug: https://github.com/dart-lang/native/issues/1543
    Open source →
  17. 14.0.0 06 Sep 2024
    Release notes
    • Create a public facing API for FFIgen that can be invoked as a library: void generate(Config config). Make Config an implementatble interface, rather than needing to be parsed from yaml.
    • Add a external-versions config option. Setting the minimum target version will omit APIs from the generated bindings if they were deprecated before this version.
    • Global variables using ObjC types (interfaces or blocks) will now use the correct Dart wrapper types, instead of the raw C-style pointers.
    • Rename assetId under ffi-native to asset-id to follow dash-case.
    • Breaking change: ObjC blocks are now passed through all ObjC APIs as ObjCBlock<Ret Function(Args...)>, instead of the codegenned ObjCBlock_... wrapper. The wrapper is now a non-constructible set of util methods for constructing ObjCBlock.
    • Breaking change: Generated ObjC code has been migrated to ARC (Automatic Reference Counting), and must now be compiled with ARC enabled. For example, if you had a line like s.requires_arc = [] in your podspec, this should either be removed, or you should add the FFIgen generated ObjC code to the list. If you're compiling directly with clang, add the -fobjc-arc flag.
    • Breaking change: Structs with enum members now generate their members as Dart enum values as well. For example, with an enum MyEnum and a struct with a member MyEnum enumMember, two members are generated: enumMemberAsInt which contains the original integer value, and enumMember, which is of type MyEnum. If you configure the enum to be generated as Dart integers, this new behavior will not apply, and the struct member will be an integer as well.
    • Breaking change: Enums generated as integers will now generate sealed classes as opposed to abstract classes.
    • Fix some bugs in the way ObjC method families and ownership annotations were being handled: https://github.com/dart-lang/native/issues/1446
    • Apply the existing member-rename option to ObjC interface and protocol methods and properties.
    • Add a member-filter option that filters ObjC interface and protocol methods and properties.
    Open source →
  18. 13.0.0 18 Jul 2024
    Release notes
    • Breaking change: Code-gen the ObjC id type to ObjCObjectBase rather than NSObject, since not all ObjC classes inherit from NSObject. Eg NSProxy.
    • Breaking change: Generate a native trampoline for each listener block, to fix a ref counting bug: https://github.com/dart-lang/native/issues/835.
      • If you have listener blocks affected by this ref count bug, a .m file will be generated containing the trampoline. You must compile this .m file into your package. If you already have a flutter plugin or build.dart, you can simply add this generated file to that build.
      • If you don't use listener blocks, you can ignore the .m file.
      • You can choose where the generated .m file is placed with the output.objc-bindings config option.
    • Breaking change: Native enums are now generated as real Dart enums, instead of abstract classes with integer constants. Native enum members with the same integer values are handled properly on the Dart side, and native functions that use enums in their signatures now accept the generated enums on the Dart side, instead of integer values. To opt out of this, use the enums->as-int option as specified in the README.
    • Breaking change: Enum integer types are implementation-defined and not part of the ABI. Therefore FFIgen does a best-effort approach trying to mimic the most common compilers for the various OS and architecture combinations. To silence the warning set config silence-enum-warning to true.
    • Rename ObjC interface methods that clash with type names. Fixes https://github.com/dart-lang/native/issues/1007.
    • Added support for implementing ObjC protocols from Dart. Use the objc-protocols config option to generate bindings for a protocol.
    • Fix some bugs where ObjC interface/protocol methods could collide with Dart built-in methods, or with types declared elsewhere in the generated bindings.
    • Add include-unused-typedefs to allow generating typedefs that are not referred to anywhere, the default option is false.
    • Use package:dart_flutter_team_lints.
    Open source →
  19. 12.0.0 09 May 2024
    Release notes
    • Global variables are now compatible with the ffi-native option.
    • Exposing symbol addresses of functions and globals is now compatible with the ffi-native option.
    • Add retainAndReturnPointer method to ObjC objects and blocks, and add castFromPointer method to blocks.
    • Add -Wno-nullability-completeness as default compiler option for MacOS.
    • Breaking change: Use package:objective_c in ObjC bindings.
      • ObjC packages will have a flutter dependency (until https://github.com/dart-lang/native/issues/1068 is fixed).
      • Core classes such as NSString have been moved into package:objective_c.
      • ObjC class methods don't need the ubiquitous lib argument anymore. In fact, FFIgen won't even generate the native library class (unless it needs to bind top level functions without using @Native). It is still necessary to DynamicLibrary.open the dylib though, to load the classes and methods.
      • Adapting to this change:
        • Update FFIgen and re-run the code generation. If the generated code no longer contains the native library class, it means it isn't needed anymore. So final lib = FooNativeLib(DynamicLibrary.open('foo.dylib')); must be changed to DynamicLibrary.open('foo.dylib');.
        • Regardless of whether the native library class still exists, delete the lib parameter from all ObjC object constructors and static method calls and block constructors.
        • If core ObjC classes such as NSString are being used, package:objective_c must be imported, as they won't be exported by the generated bindings.
    • Add --[no-]format option to FFIgen command line, which controls whether the formatting step happens. Defaults to true.
    • Delete Dart functions associated with ObjC closure blocks when the block is destroyed. Fixes https://github.com/dart-lang/native/issues/204
    • Reduce cursor definition not found logs when structs/unions -> dependency-only is set to opaque.
    Open source →
  20. 11.0.0 03 Jan 2024
    Release notes
    • Any compiler errors/warnings in source header files will now result in bindings to not be generated by default, since it may result in invalid bindings if the compiler makes a wrong guess. A flag --ignore-source-errors (or yaml config ignore-source-errors: true) must be passed to change this behaviour.
    • Breaking change: Stop generating setters for global variables marked const in C.
    • Fix objc_msgSend being used on arm64 platforms where it's not available.
    • Fix missing comma with ffi-native functions marked leaf.
    • Add support for finding libclang in Conda environment.
    Open source →
  21. 10.0.0 15 Nov 2023
    Release notes
    • Stable release targeting Dart 3.2 using new dart:ffi features available in Dart 3.2 and later.
    • Add support for ObjC Blocks that can be invoked from any thread, using NativeCallable.listener.
    • Fix invalid exceptional return value ObjCBlocks that return floats.
    • Fix return_of_invalid_type analysis error for ObjCBlocks.
    • Fix crash in ObjC methods and blocks that return structs by value.
    • Fix ObjC methods returning instancetype having the wrong type in sublasses.
    • When generating typedefs for Pointer<NativeFunction<Function>>, also generate a typedef for the Function.
    • Use Dart wrapper types in args and returns of ObjCBlocks.
    • Use Dart wrapper types in args and returns of static functions.
    • Renamed asset to assetId for ffi-native.
    Open source →
  22. 9.0.1 24 Jul 2023
    Release notes
    • Fix doc comment missing on struct/union array fields.
    • Allow extern inline functions to be generated.
    Open source →
  23. 9.0.0 12 Jul 2023
    Release notes
    • Added a JSON schema for FFIgen config files.
    Open source →
  24. 8.0.2 15 May 2023
    Release notes
    • Fixed invalid code generated due to zero-length arrays in structs/union.
    Open source →
  25. 8.0.1 12 May 2023
    Release notes
    • Fixed invalid code generated due to anonymous structs/unions with unsupported types.
    Open source →
  26. 8.0.0 02 May 2023
    Release notes
    • Stable release for Dart 3.0 with support for class modifers, variadic arguments, and @Natives.
    Open source →
  27. 8.0.0-dev.3 01 May 2023 pre-release
    Release notes
    • Added support for variadic functions using config functions -> variadic-arguments.
    Open source →
  28. 8.0.0-dev.2 01 May 2023 pre-release
    Release notes
    • Use @Native syntax instead of deprecated @FfiNative syntax.
    Open source →
  29. 8.0.0-dev.1 01 May 2023 pre-release
    Release notes
    • Fix invalid struct/enum member references due to multiple anonymous struct/enum in a declaration.
    Open source →
  30. 8.0.0-dev.0 19 Apr 2023 pre-release
    Release notes
    • Adds final class modifier to generated sub types Struct, Union and Opaque. A class modifier is required in Dart 3.0 because the classes dart:ffi as marked base. When migrating a package that uses FFIgen, and exposes the generated code in the public API of the package, to Dart 3.0, that package does not need a major version bump. Sub typing Struct, Union and Opaque sub types is already disallowed by dart:ffi pre 3.0, so adding the final keyword is not a breaking change.
    • Bumps SDK lowerbound to 3.0.
    Open source →
  31. 7.2.11 25 Apr 2023
    Release notes
    • Fix invalid struct/enum member references due to multiple anonymous struct/enum in a declaration.
    Open source →
  32. 7.2.10 04 Apr 2023
    Release notes
    • Generate parameter names in function pointer fields and typedefs.
    Open source →
  33. 7.2.9 15 Mar 2023
    Release notes
    • Detect LLVM installed using Scoop on Windows machines.
    Open source →
  34. 7.2.8 15 Mar 2023
    Release notes
    • Automatically generate ignore_for_file: type=lint if not specified in preamble.
    Open source →
  35. 7.2.7 06 Mar 2023
    Release notes
    • Fix some macros not being generated in some cases due to relative header paths.
    Open source →
  36. 7.2.6 16 Feb 2023
    Release notes
    • Fix path normalization behaviour for absolute paths and globs starting with **.
    Open source →
  37. 7.2.5 09 Feb 2023
    Release notes
    • Add support nested anonymous union/struct
    Open source →
  38. 7.2.4 16 Dec 2022
    Release notes
    • Add new supported typedef - uintptr_t (mapped to ffi.UintPtr).
    Open source →
  39. 7.2.3 13 Dec 2022
    Release notes
    • Change compiler option order so that user options can override built-in options.
    Open source →
  40. 7.2.2 23 Nov 2022
    Release notes
    • Added newer versions of LLVM, to default linuxDylibLocations.
    Open source →
  41. 7.2.1 18 Nov 2022
    Release notes
    • Fix helper methods sometimes missing from NSString.
    Open source →
  42. 7.2.0 24 Oct 2022
    Release notes
    • Added support for sharing bindings using symbol-file config. (See README.md and examples/shared_bindings).
    Open source →
  43. 7.1.0 12 Oct 2022
    Release notes
    • Handle declarations with definition accessible from a different entry-point.
    Open source →
  44. 7.0.0 07 Oct 2022
    Release notes
    • Fix typedef include/exclude config.
    • Return ObjCBlock wrapper instead of raw pointer in more cases.
    Open source →
  45. 6.1.2 25 Aug 2022
    Release notes
    • Fix bug where function bindings were not deduped correctly.
    Open source →
  46. 6.1.1 18 Aug 2022
    Release notes
    • EXPERIMENTAL support for FfiNative. The API and output might change at any point.
    Open source →
  47. 6.1.0 18 Aug 2022
    Release notes
    • Added exclude-all-by-default config flag, which changes the default behavior of declaration filters to exclude everything, rather than include everything.
    Open source →
  48. 6.0.2 18 Aug 2022
    Release notes
    • Bump package:ffi to 2.0.1.
    Open source →
  49. 6.0.1 14 Jun 2022
    Release notes
    • Replace path separators in include-directives before matching file names.
    • Add more ways to find libclang.
    Open source →
  50. 6.0.0 30 May 2022
    Release notes
    • Removed config dart-bool. Booleans are now always generated with bool and ffi.Bool as it's Dart and C Type respectively.
    Open source →
  51. 5.0.1 27 May 2022
    Release notes
    • Add a the xcode tools llvm as default path on MacOS.
    Open source →
  52. 5.0.0 13 May 2022
    Release notes
    • Stable release targeting Dart 2.17, supporting ABI-specific integer types.
    • EXPERIMENTAL support for ObjectiveC on MacOS hosts. The API and output might change at any point. Feel free to report bugs if encountered.
    Open source →
  53. 5.0.0-dev.1 09 Feb 2022 pre-release
    Release notes
    • Fixed invalid default dart types being generated for size_t and wchar_t.
    Open source →
  54. 5.0.0-dev.0 22 Jan 2022 pre-release
    Release notes
    • Added support for generating ABI Specific integers.
    • Breaking: removed config keys - size-map and typedef-map.
    • Added config keys - library-imports and type-map.
    Open source →
  55. 4.1.3 01 Feb 2022
    Release notes
    • Analyzer fixes.
    Open source →
  56. 4.1.2 12 Nov 2021
    Release notes
    • Added fix for empty include list to exclude all
    Open source →
  57. 4.1.1 28 Oct 2021
    Release notes
    • Added fix for errors due to name collision between member name and type name used internally in structs/unions.
    Open source →
  58. 4.1.0 04 Oct 2021
    Release notes
    • Add config key functions -> leaf for specifying isLeaf:true for functions.
    Open source →
  59. 4.0.0 08 Sep 2021
    Release notes
    • Release for Dart SDK >=2.14.
    Open source →
  60. 4.0.0-dev.2 07 Jun 2021 pre-release
    Release notes
    • Added config key functions -> expose-typedefs to expose the typedef to Native and Dart type.
    • Config key function->symbol-address no longer exposes the typedef to Native type. Use expose-typedefs to get the native type.
    Open source →

Every package, every release, already written down.

The archive is open and free. Watching your own project is what we are building next.

Browse the archive