flutter_concrete 0.3.0
flutter_concrete: ^0.3.0 copied to clipboard
Concrete ML FHE client for Flutter. Native TFHE-rs encryption/decryption via Dart FFI with quantization support.
0.3.0 #
CiphertextFormat.CONCRETEsupport: Native seeded LWE encryption and decryption for Concrete's default ciphertext format. Enablesn_bits1–7 (no longer forced ton_bits=8), producing dramatically smaller circuits and faster inference.- Automatic format detection:
ConcreteClientreadsclient.specs.jsonto determine whether the model uses CONCRETE or TFHE-rs format and routes through the appropriate path. No public API changes. - Dynamic keygen parameters:
fhe_keygenderives GLWE dimensions from the circuit topology instead of hardcoding V0_10, supporting any parameter set the Concrete compiler chooses. - Cap'n Proto Value serialization: New
fhe_serialize_value/fhe_deserialize_valueFFI functions for Concrete's ciphertext transport format. - nClasses from output shape:
dequantizeOutputscorrectly aggregates per-tree scores for CONCRETE format models wheretfhers_specsis absent. - New internal types:
ConcreteCipherInfo,ConcreteCipherCompression
0.2.0 #
- Dynamic key topology: Keygen reads
client.specs.jsonfromclient.zipinstead of hardcoded key counts. Supports any Concrete ML circuit. - Multi-width encrypt/decrypt: Dispatches to FheUint8–64 / FheInt8–64 based on encoding width. No longer limited to uint8/int8.
- Model change detection: SHA-256 hash of topology + encoding stored in KeyStorage; keys auto-regenerate when the model changes.
Int64ListI/O for quantization with dynamic bit-width clamping
0.1.0 #
- Initial release
- ConcreteClient: setup from Concrete ML client.zip, key generation/restoration, quantize+encrypt, decrypt+dequantize
- KeyStorage abstract interface for key persistence
- 8-bit quantization (uint8 input, int8 output) compatible with Concrete ML models
- Cargokit-based native build with precompiled binary support
- Android and iOS platform support
0.1.1 #
- Updated README.md