In development · no release yet GPLv3, royalty-free or commercial — your choice

bindsmith.

One bindsmith.yaml, six Flutter platforms — Dart bindings for native APIs on Android, iOS, macOS, Windows, Linux and Web.

dart run bindsmith doctor
The bindsmith multi-tool mark on its ink tile, with six platform chips fanned around it in copper and azure.

See it run

bindsmith, in the terminal.

bindsmith — zsh
$ dart run bindsmith init
$ dart run bindsmith generate
$ dart run bindsmith verify
$ dart run bindsmith dump > api.json
$ dart run bindsmith diff api.json
$ dart run bindsmith generate --check
Commands from the bindsmith usage examples.

Overview

What bindsmith does.

One bindsmith.yaml, six Flutter platforms. bindsmith generates Dart bindings for native APIs on Android, iOS, macOS, Windows, Linux and Web by driving the official generators through their library APIs (ffigen, swiftgen, jnigen, winmd, dart-dbus), with a TypeScript .d.ts driver for Web, a unified IR with fixup passes, and review markers for everything that could not be mapped.

bindsmith is a work in progress: the drivers, the IR, the passes and the emitters are in place, and the command line generates for the C and Objective-C drivers so far.

Features

Built for real workflows.

Install

Up and running in a minute.

Install

Add the generator and the runtime to your package:

dev_dependencies:
  bindsmith: ^0.1.0
dependencies:
  bindsmith_runtime: ^0.1.0

Then check what this machine is missing:

dart run bindsmith doctor

Usage

Write a starter config, generate, and see what still needs a human.

dart run bindsmith init
dart run bindsmith generate
dart run bindsmith verify

More examples below.

Usage examples

Real commands, straight from the docs.

In CI, fail when the native API moved or the checked-in output is stale.

dart run bindsmith dump > api.json
dart run bindsmith diff api.json
dart run bindsmith generate --check

Links

License

You can use bindsmith under any of the following licenses, at your choice:

  1. GNU GPLv3 — free for open-source applications on any platform, including embedded systems.
  2. Royalty-free license — free for proprietary desktop, mobile and web applications, as long as you disclose that your application uses the project. Embedded systems are not covered.
  3. Commercial license — for proprietary applications, including embedded systems, without the attribution requirement.

Pricing

Pro is a placeholder

Free forever. Pro when you need it.

Free · open source

GPLv3, royalty-free or commercial — your choice

$0forever

  • Six platforms from one YAML
  • Review markers and verify
  • CI-safe dump, diff and --check
Install free

Try bindsmith today.

Free and open source. Star it, file an issue, or send a pull request.