face_verification_core
Reusable Rust core for on-device face liveness and face verification.
This repository must stay independent from Naru, Flutter, Supabase and any specific app backend. The goal is a portable ML/liveness core that can be used from Flutter, native Rust apps, desktop apps, WASM, or a server.
Scope
- Face detection.
- Facial landmarks and face alignment.
- Face embeddings.
- Liveness challenge validation:
- face centered,
- smile,
- turn left/right on screen,
- show N fingers,
- touch nose/cheek/ear.
- Optional age and NSFW classifiers if they remain generic enough.
Non-goals
- Camera UI.
- Flutter widgets.
- Supabase or database calls.
- Naru-specific onboarding or moderation policy.
Recommended Runtime Direction
Start with tract + ONNX because it is pure Rust and has the best chance of
working consistently across native platforms and WASM. Keep candle as a
candidate if tract is too slow or lacks model support.
Companion Package
The Flutter package lives in a separate repository during development:
face_liveness_kit
That package should expose the camera flow and Dart API for pub.dev, while this crate remains useful to non-Flutter users.