Search packages, repositories and app categories

Package detailsv23.0.0

ffigen

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

AndroidiOSmacOSWindowsLinux
30-day downloads
1.1M
Likes
338
Pub points
160

Install package

flutter pub add ffigen

Package Overview

Package selection guidance compiled from public package information, community data, and project usage.

ffigen is a code generator that creates Dart FFI (Foreign Function Interface) bindings for C, Objective-C, and Swift libraries. It uses LibClang to parse native headers and automatically generates corresponding Dart code, enabling seamless interoperability between Dart and native code. This simplifies calling native functions from Dart without manual binding creation. Ideal for performance-critical applications or integrating existing native libraries into Flutter apps.

Use cases

  • Integrating C libraries into Flutter apps
  • Calling native functions from Dart
  • Generating FFI bindings for iOS and Android
  • Using Swift libraries in Flutter
  • Building high-performance native extensions

Key features

  • Automatically generates FFI bindings
  • Supports C, Objective-C, and Swift
  • Uses LibClang for accurate parsing
  • Generates clean, readable Dart code
  • Configurable output and naming

Suitable for

  • Developers working with native C/C++ libraries
  • Flutter apps needing high-performance native calls
  • Teams maintaining cross-platform native integrations
  • Projects requiring minimal FFI boilerplate

Considerations

  • Requires LibClang installation
  • May need platform-specific configuration
  • Generated code may require manual adjustments
  • Not suitable for dynamic or runtime-loaded libraries
  • Build setup complexity on some platforms

Original README

Original README snapshot from the linked source repository. Visit the repository for the latest content.

Coverage Status

Overview

This repository is home to Dart packages related to FFI and native assets building and bundling.

Documentation

See the doc directory for more documentation.

Packages

Package Description Issues Version
code_assets This package contains the Dart API for code assets in hook/build.dart and hook/link.dart. issues pub package
data_assets This package contains the Dart API for data assets in hook/build.dart and hook/link.dart. issues pub package
ffi Utilities for working with Foreign Function Interface (FFI) code. issues pub package
ffigen Generator for FFI bindings, using LibClang to parse C, Objective-C, and Swift files. issues pub package
hooks This package contains the API for hook/build.dart and hook/link.dart. issues pub package
hooks_runner This package is the backend that invokes hook/build.dart and hook/link.dart from Dart and Flutter. issues pub package
jni A library to access JNI from Dart and Flutter that acts as a support library for package:jnigen. issues pub package
jni_flutter A library to access Flutter Android specific APIs from Dart. issues pub package
jni_util A library to access Flutter Android specific APIs from Dart. issues pub package
jnigen A Dart bindings generator for Java and Kotlin that uses JNI under the hood to interop with Java virtual machine. issues pub package
native_toolchain_c A library to invoke the native C compiler installed on the host machine. issues pub package
objective_c A library to access Objective C from Flutter that acts as a support library for package:ffigen. issues pub package
record_use Dart API to access @RecordUse() recorded usages in link hooks. issues pub package
swift2objc A tool for generating bindings that allow interop between Dart and Swift code. issues pub package
swiftgen A tool for generating bindings that allow interop between Dart and Swift code. issues pub package

External packages

Packages not on this repo but also related to FFI and native assets. ❤️

Package Description Version
native_toolchain_cmake A library to invoke CMake for Dart Native Assets. pub package
native_toolchain_go A library to invoke the native Go compiler installed on the host machine. pub package
native_toolchain_ninja A library to invoke Ninja for Dart Native Assets. pub package
native_toolchain_rust A library to build and bundle Rust code for Dart Native Assets. pub package
native_toolchain_zig A library to build and bundle Zig code for Dart Native Assets. pub package

Publishing automation

For information about our publishing automation and release process, see https://github.com/dart-lang/ecosystem/wiki/Publishing-automation.

For additional information about contributing, see our contributing page.

Categories

Dependencies

Dependency list 18 items

Source repository

Projects using this package

Rankings