Fully Homomorphic Encryption lets you compute on data without decrypting it. It has been practical for roughly three years. What it has not been is mobile-friendly.
flutter_concrete is a Flutter FFI plugin that brings Zama’s Concrete ML to iOS and Android. It handles the full client-side FHE workflow: key generation, quantization, encryption, and decryption. The server runs inference on ciphertext and returns encrypted predictions — it never sees plaintext inputs or outputs.
The plugin bridges Dart to a Rust cryptographic core via FFI using TFHE-rs. Cargokit automates native compilation during flutter build across six targets on iOS and Android. The API is deliberately simple: setup() parses a model config and manages keys, quantizeAndEncrypt() turns floats into ciphertext, decryptAndDequantize() reverses the process with automatic post-processing detected from the model class. Supports 13+ model types including XGBClassifier, LogisticRegression, and RandomForestRegressor.
The constraints are honest — single input/output tensors, native encoding only. These are the edges of what FHE on mobile can do today, and the documentation does not pretend otherwise.
Private AI should not require a data center. flutter_concrete makes it something you can ship in an app.
Published on pub.dev under BSD-3-Clause. Version 0.4.0.