Flutter wrapper for JSON-goLD

This is a Dart wrapper for JSON-goLD.

It realizes direct interop between Dart and Go/cgo without any other glue codes by utilizing Dart's ReceivePort; it reduces interop code for every platform.

Note for iOS

Update your project's target iOS version to 11.0 or later; underlying xcframework does not have slice for armv7 (32-bit) codes.

Testing on macOS

Although the plugin DOES NOT support macOS as a Flutter plugin, it DOES support running test on macOS. To run test on macOS, you should firstly run gomodule/build-mac.sh and it will generate gomobile/dist/mac/libld2rdf.dylib. After that, you can safely run flutter test.

Build scripts

For Android and iOS, the Flutter plugin project already contains prebuilt binaries. But of course, you can rebuild the binaries using the following scripts (they requires go command installed on your machine).

Android

The following script will build shared object file (libld2rdf.so) for arm64-v8a, armeabi-v7a, x86, and x64 under android/src/main/jniLibs:

gomodule/build-android.sh

iOS

The following script will build ios/GoJsonLd2Rdf.xcframework that supports iPhone 64-bit (arm64) and iPhone Simulator (arm64/amd64):

gomodule/build-ios.sh

macOS

The following script will build gomobile/dist/mac/libld2rdf.dylib that supports arm64 and amd64:

gomodule/build-mac.sh

Windows

The following script will build gomobile/dist/windows/x86_64/libld2rdf.dll:

gomodule/build-windows.sh

But it is expected to run on Linux or such environment; at least the following prerequisites:

  • gcc-multilib
  • gcc-mingw-w64
  • binutils-mingw-w64

References

Libraries

json_ld_2_rdf