#bindings #ffi #code-generation #dart

bin+lib dart-bindgen

A tool for generating Dart FFI bindings to C Header file

11 releases

0.1.9-deprecated Apr 14, 2021
0.1.8 Nov 9, 2020
0.1.8-deprecated Mar 20, 2021
0.1.7 Aug 14, 2020
0.1.1 Jun 27, 2020

#14 in #dart

Download history 1296/week @ 2021-10-01 307/week @ 2021-10-08 124/week @ 2021-10-15 188/week @ 2021-10-22 301/week @ 2021-10-29 380/week @ 2021-11-05 529/week @ 2021-11-12 163/week @ 2021-11-19 304/week @ 2021-11-26 278/week @ 2021-12-03 195/week @ 2021-12-10 226/week @ 2021-12-17 73/week @ 2021-12-24 52/week @ 2021-12-31 93/week @ 2022-01-07 47/week @ 2022-01-14

336 downloads per month

Custom license

50KB
1K SLoC

Dart Bindgen

A tool for generating Dart FFI bindings to C Header file.

⚠️ This crate is deprecated and 🚧 unmaintained 🚧 for now, please prefer ffigen from the dart team.


Goals

  1. be able to generate a single ffi.dart file that should contain all the C header bindings.
  2. Current Supported C Features
  • Functions
  • Function Pointer (aka Callbacks)
  • Simple Structs (NOTE: Nested structs is not supported yet, open a PR?)
  • C Enums

Non-Goals

Writing a High-Level Abstractions and idiomatic Dart Code for the FFI bindgens, we will leave that as a homework for the user :).

Install

Make sure you have installed the dependencies:

  1. LLVM and clang

on macOS:

brew install llvm

on Windows:

Download a prebuild from here

on Linux:

you know what to do ;)


and then you could install the CLI from github releases or you could also use cargo to build it from source:

$ cargo install --force dart-bindgen --features cli

Safety

This crate uses #![deny(unsafe_code)] to ensure everything is implemented in 100% Safe Rust.

Contributing

Want to join us? Check out our "Contributing" guide and take a look at some of these issues:

License

Licensed under Apache v2.0 license.
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in this crate by you, as defined in the Apache-2.0 license, shall be licensed as above, without any additional terms or conditions.

Dependencies

~0.8–1.6MB
~36K SLoC

v`