#native #extension #extensions #dart

sys no-std dart-sys

Native bindings to the dart native extensions api

3 releases

✓ Uses Rust 2018 edition

0.1.2 Sep 30, 2019
0.1.1 Sep 30, 2019
0.1.0 Sep 30, 2019

#41 in FFI

MIT license

5.5K SLoC


Native bindings to the dart native extensions sdk.

This crate exposes an api for dart_api.h, which exposes the basic dart native extensions api. This crate used bindgen to generate the bindings to the header.

  • Provide a path to the dart sdk using a dart_sdk environment variable.
    • If this variable is not available, will look for either a chocolatey install path, or an entry in the PATH variable which contains dart-sdk in it. This will fall back to the flutter sdk should it not find a dart sdk, but this is not recommended, as it is more difficult to compile using the flutter sdk and it appears it ships a non-standard dart sdk.
  • Have clang installed and on your path.

Include the following in your Cargo.toml:

crate-type = ["cdylib"]
dart-sys = "0.1.0"

And follow the guide on the native extensions api page.


Please visit the examples directory for more information. If there should appear more idiomatic bindings, I will try to keep this updated to link to them.


A few things are not mentioned on the native extensions api page:

  • You should compile using an x64 compiler (eg., [stable|nightly|beta]-x86_64-pc-windows-msvc)
  • You should place the compiled library in the same directory as the root of your dart package (I.E. outside of your lib directory)

No runtime deps