pub struct ModelManifest {
pub id: String,
pub repo: String,
pub revision: String,
pub files: Vec<ModelFile>,
pub license: String,
}Expand description
Model manifest describing a downloadable model.
Structurally compatible with frankensearch_embed::ModelManifest
(which has additional optional fields: version, display_name, description,
dimension, tier, download_size_bytes).
Fields§
§id: StringModel identifier (e.g., “all-minilm-l6-v2”).
repo: StringHuggingFace repository.
revision: StringPinned revision (commit SHA).
files: Vec<ModelFile>Files to download.
license: StringLicense identifier.
Implementations§
Source§impl ModelManifest
impl ModelManifest
Sourcepub fn has_verified_checksums(&self) -> bool
pub fn has_verified_checksums(&self) -> bool
Check if this manifest has verified checksums for all files.
Returns false if any file has the placeholder checksum, indicating
the model has not been downloaded and verified yet.
Sourcepub fn has_pinned_revision(&self) -> bool
pub fn has_pinned_revision(&self) -> bool
Check if this manifest has a pinned revision (not “main”).
Unpinned revisions (“main”) are not reproducible since the content can change at any time on HuggingFace.
Sourcepub fn is_production_ready(&self) -> bool
pub fn is_production_ready(&self) -> bool
Check if this manifest is production-ready.
A manifest is production-ready if it has:
- All checksums verified (no placeholders)
- A pinned revision (not “main”)
Sourcepub fn minilm_v2() -> Self
pub fn minilm_v2() -> Self
Get the default MiniLM model manifest (baseline for bake-off).
The revision and checksums are pinned for reproducibility. Updated 2026-01-13: HuggingFace restructured the repo - ONNX models moved to onnx/ subdir.
Sourcepub fn snowflake_arctic_s() -> Self
pub fn snowflake_arctic_s() -> Self
Snowflake Arctic Embed S manifest.
Released: 2025-11-10 Dimension: 384 Small, fast model with MiniLM-compatible dimension.
Verified: 2026-02-02 - All checksums verified from HuggingFace.
Sourcepub fn nomic_embed() -> Self
pub fn nomic_embed() -> Self
Nomic Embed Text v1.5 manifest.
Released: 2025-11-05 Dimension: 768 Long context support with Matryoshka embedding capability.
Verified: 2026-02-02 - All checksums verified from HuggingFace.
Sourcepub fn msmarco_reranker() -> Self
pub fn msmarco_reranker() -> Self
MS MARCO MiniLM reranker manifest (baseline for bake-off).
Verified: 2026-02-02 - All checksums verified from HuggingFace.
Note: The HuggingFace repo is ms-marco-MiniLM-L6-v2 (no hyphen between
L and 6), but the on-disk directory name carries an extra hyphen
(ms-marco-MiniLM-L-6-v2) to match reranker_registry::ReRanker::model_dir.
Install paths use id as the directory; keeping them aligned is what
lets cass models install --model ms-marco deliver the files where
FastEmbedReranker actually looks for them.
Sourcepub fn jina_reranker_turbo() -> Self
pub fn jina_reranker_turbo() -> Self
Jina Reranker v1 Turbo EN manifest.
Released: 2025-11-20 Fast, optimized for English.
Verified: 2026-02-02 - All checksums verified from HuggingFace.
Sourcepub fn for_embedder(name: &str) -> Option<Self>
pub fn for_embedder(name: &str) -> Option<Self>
Get manifest by embedder name.
Sourcepub fn for_reranker(name: &str) -> Option<Self>
pub fn for_reranker(name: &str) -> Option<Self>
Get manifest by reranker name.
Sourcepub fn bakeoff_embedder_candidates() -> Vec<Self>
pub fn bakeoff_embedder_candidates() -> Vec<Self>
Get all bake-off eligible embedder manifests.
All models are verified with pinned revisions and SHA256 checksums.
Sourcepub fn bakeoff_reranker_candidates() -> Vec<Self>
pub fn bakeoff_reranker_candidates() -> Vec<Self>
Get all bake-off eligible reranker manifests.
All models are verified with pinned revisions and SHA256 checksums.
Sourcepub fn bakeoff_candidates() -> Vec<Self>
pub fn bakeoff_candidates() -> Vec<Self>
Get all bake-off eligible model manifests (embedders + rerankers).
All models are verified with pinned revisions and SHA256 checksums.
Sourcepub fn total_size(&self) -> u64
pub fn total_size(&self) -> u64
Total size of all files in bytes.
Sourcepub fn download_url_with_base(
&self,
file: &ModelFile,
base_url: Option<&str>,
) -> String
pub fn download_url_with_base( &self, file: &ModelFile, base_url: Option<&str>, ) -> String
Download URL for a file, optionally via a validated mirror base URL.
Sourcepub fn download_url(&self, file: &ModelFile) -> String
pub fn download_url(&self, file: &ModelFile) -> String
HuggingFace download URL for a file.
Sourcepub fn air_gap_bash_script(&self, base_url: Option<&str>) -> String
pub fn air_gap_bash_script(&self, base_url: Option<&str>) -> String
Generate a ready-to-paste bash script that downloads every file in the
manifest via curl and then invokes cass models install --from-file.
Use this when the in-process downloader fails (e.g. the known Windows rustls/TCP connect race — see GH#193 for context). The script uses the pinned repo revision so checksums match.
Sourcepub fn air_gap_powershell_script(&self, base_url: Option<&str>) -> String
pub fn air_gap_powershell_script(&self, base_url: Option<&str>) -> String
Generate a ready-to-paste PowerShell script that downloads every file
via Invoke-WebRequest and then invokes cass models install --from-file.
Trait Implementations§
Source§impl Clone for ModelManifest
impl Clone for ModelManifest
Source§fn clone(&self) -> ModelManifest
fn clone(&self) -> ModelManifest
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreAuto Trait Implementations§
impl Freeze for ModelManifest
impl RefUnwindSafe for ModelManifest
impl Send for ModelManifest
impl Sync for ModelManifest
impl Unpin for ModelManifest
impl UnsafeUnpin for ModelManifest
impl UnwindSafe for ModelManifest
Blanket Implementations§
Source§impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
Source§impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>, which can then be
downcast into Box<dyn ConcreteType> where ConcreteType implements Trait.Source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Rc<Trait> (where Trait: Downcast) to Rc<Any>, which can then be further
downcast into Rc<ConcreteType> where ConcreteType implements Trait.Source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.Source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.Source§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can
then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.Source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be
further downcast into Rc<ConcreteType> where ConcreteType implements Trait.Source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.Source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.Source§impl<T> DowncastSend for T
impl<T> DowncastSend for T
Source§impl<T> DowncastSync for T
impl<T> DowncastSync for T
Source§impl<T> DowncastSync for T
impl<T> DowncastSync for T
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, _span: NoopSpan) -> Self
fn instrument(self, _span: NoopSpan) -> Self
Source§fn in_current_span(self) -> Self
fn in_current_span(self) -> Self
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more