ffai-models
Weight management for FFai: TOML manifests, a hash-verified cache, and each model's own license surfaced before you use it.
let manifests = load_dir?;
let m = manifests.iter.find.unwrap;
println!; // licenses are not hidden
let resolved = m.fetch?; // downloads once, into the cache
let weights = resolved.file?;
Principle 4: weights are data, not code
Nothing is vendored. A manifest declares where weights come from and what license they carry:
= "wav2vec2-base-960h"
= "asr"
= "Apache-2.0"
= "facebook/wav2vec2-base-960h"
[[]]
= "model.safetensors"
That has a consequence FFai takes seriously: a model you cannot fetch without clicking through a browser cannot go in a manifest. It is why Mercury's diarization uses SpeechBrain's ECAPA-TDNN (Apache-2.0, ungated) rather than the more common pyannote weights, which are MIT-licensed and gated. Every model FFai fetches is fetchable without an account.
Model licenses are frequently more restrictive than FFai's own. ffai models lists them.
License
MIT OR Apache-2.0 (this crate).