Cindel’s Dart API talks to a Rust native core through FFI on native platforms and through a Worker/Wasm runtime on Web. These runtime files must be present in the final app bundle for Cindel to work. TheDocumentation Index
Fetch the complete documentation index at: https://mintlify.com/mainser/cindel/llms.txt
Use this file to discover all available pages before exploring further.
cindel_flutter_libs companion package ships prebuilt libraries and Web assets for every supported platform so that app developers do not need Rust, Cargo, or any native build toolchain to use Cindel in a Flutter app.
Most Flutter apps never need to think about native libraries directly. Adding
cindel_flutter_libs as a dependency is the only step required — Flutter’s build system locates and bundles the correct library for each target platform automatically.Adding the companion package
cindel_flutter_libs is required. The cindel package owns the public API:
cindel_flutter_libs is present so Flutter’s platform build can find and bundle the required native libraries or Web Worker/Wasm assets. Keep both packages on the same version line — they share a native ABI that must match.
Bundled libraries by platform
Android
Prebuilt.so libraries are included for three ABIs:
| ABI | File |
|---|---|
arm64-v8a | android/src/main/jniLibs/arm64-v8a/libcindel_native.so |
armeabi-v7a | android/src/main/jniLibs/armeabi-v7a/libcindel_native.so |
x86_64 | android/src/main/jniLibs/x86_64/libcindel_native.so |
iOS
Anxcframework is provided via the cindel_flutter_libs CocoaPods podspec. It is generated on macOS with Xcode before publishing Apple runtime support.
macOS
A universal (multi-architecture) library is included via thecindel_flutter_libs podspec.
Windows
Linux
Web
The Web runtime is SQLite/OPFS only — MDBX is not a browser backend:| File | Purpose |
|---|---|
web/cindel_worker.js | Worker bootstrap |
web/pkg/cindel_native.js | Wasm JS glue |
web/pkg/cindel_native_bg.wasm | Compiled Rust + SQLite Wasm runtime |
Pure Dart tools (non-Flutter)
For Dart command-line tools or test runners that usecindel but do not go through Flutter’s plugin system, set the CINDEL_NATIVE_LIBRARY environment variable to the absolute path of the native library before running:
cindel package reads this variable at startup and loads the library from that path instead of searching default plugin locations.
Building from source
Thetool/prebuilt/ directory in the Cindel repository contains the build scripts that compile the Rust native core and copy the outputs into packages/cindel_flutter_libs. Maintainer toolchain requirements vary by platform:
| Platform | Script | Requirements |
|---|---|---|
| Windows | build_windows.ps1 | Rust MSVC toolchain, LLVM/libclang |
| Android | build_android.ps1 | Rust Android targets, Android NDK, LLVM/libclang |
| iOS / macOS | build_apple.sh | macOS, Xcode CLI tools, Rust Apple targets, LLVM/libclang |
| Linux | build_linux.sh | Rust GNU toolchain, LLVM/libclang |
| Web | build_web.ps1 | Rust wasm32-unknown-unknown, LLVM/clang, wasm-bindgen-cli |
--no-default-features --features web). The native platform scripts build with the mdbx Cargo feature enabled so both SQLite and MDBX are available to Flutter consumers without a local Rust toolchain.