Show HN: Fastembed-rs – Rust library for generating vector embeddings, reranking Fastembed-rs, a Rust library for generating vector embeddings and reranking, has been released. It supports synchronous usage without Tokio dependency, uses ONNX inference via pykeio/ort and fast encodings via HuggingFace tokenizers, and offers multiple embedding models. The library is part of a multi-language family including Python, Go, and JavaScript versions. - Supports synchronous usage. No dependency on Tokio. - Uses @pykeio/ort https://github.com/pykeio/ort for performant ONNX inference. - Uses @huggingface/tokenizers https://github.com/huggingface/tokenizers for fast encodings. - Python: fastembed https://github.com/qdrant/fastembed - Go: fastembed-go https://github.com/Anush008/fastembed-go - JavaScript: fastembed-js https://github.com/Anush008/fastembed-js Click to list models - Default BAAI/bge-small-en-v1.5 BAAI/bge-base-en-v1.5 BAAI/bge-large-en-v1.5 BAAI/bge-small-zh-v1.5 BAAI/bge-large-zh-v1.5 BAAI/bge-m3 sentence-transformers/all-MiniLM-L6-v2 sentence-transformers/all-MiniLM-L12-v2 sentence-transformers/all-mpnet-base-v2 sentence-transformers/paraphrase-MiniLM-L12-v2 sentence-transformers/paraphrase-multilingual-mpnet-base-v2 nomic-ai/nomic-embed-text-v1 - pairs with nomic-ai/nomic-embed-text-v1.5 nomic-embed-vision-v1.5 for image-to-text search intfloat/multilingual-e5-small intfloat/multilingual-e5-base intfloat/multilingual-e5-large mixedbread-ai/mxbai-embed-large-v1 Alibaba-NLP/gte-base-en-v1.5 Alibaba-NLP/gte-large-en-v1.5 lightonai/ModernBERT-embed-large - pairs with Qdrant/clip-ViT-B-32-text clip-ViT-B-32-vision for image-to-text search jinaai/jina-embeddings-v2-base-code jinaai/jina-embeddings-v2-base-en google/embeddinggemma-300m - requires nomic-ai/nomic-embed-text-v2-moe nomic-v2-moe feature candle backend - requires Qwen/Qwen3-Embedding-0.6B qwen3 feature candle backend - requires Qwen/Qwen3-Embedding-4B qwen3 feature candle backend - requires Qwen/Qwen3-Embedding-8B qwen3 feature candle backend - requires Qwen/Qwen3-VL-Embedding-2B qwen3 feature candle backend, multimodal via Qwen3VLEmbedding snowflake/snowflake-arctic-embed-xs snowflake/snowflake-arctic-embed-s snowflake/snowflake-arctic-embed-m snowflake/snowflake-arctic-embed-m-long snowflake/snowflake-arctic-embed-l Quantized versions are also available for several models above append Q to the model enum variant, e.g., EmbeddingModel::BGESmallENV15Q . EmbeddingGemma additionally ships a 4-bit build as EmbeddingModel::EmbeddingGemma300MQ4 . Click to list models - Default prithivida/Splade PP en v1 BAAI/bge-m3 Click to list models Click to list models To support the library, please donate to our primary upstream dependency, ort https://github.com/pykeio/ort?tab=readme-ov-file -sponsor-ort - The Rust wrapper for the ONNX runtime. Run the following in your project directory: cargo add fastembed Or add the following line to your Cargo.toml: dependencies fastembed = "5" use fastembed::{TextEmbedding, TextInitOptions, EmbeddingModel}; // With default options let mut model = TextEmbedding::try new Default::default ?; // With custom options let mut model = TextEmbedding::try new TextInitOptions::new EmbeddingModel::AllMiniLML6V2 .with show download progress true .with intra threads 4 , ?; let documents = vec "passage: Hello, World ", "query: Hello, World ", "passage: This is an example passage.", // You can leave out the prefix but it's recommended "fastembed-rs is licensed under Apache 2.0" ; // Generate embeddings with the default batch size, 256 let embeddings = model.embed documents, None ?; println "Embeddings length: {}", embeddings.len ; // - Embeddings length: 4 println "Embedding dimension: {}", embeddings 0 .len ; // - Embedding dimension: 384 use fastembed::{SparseEmbedding, SparseInitOptions, SparseModel, SparseTextEmbedding}; // With default options let mut model = SparseTextEmbedding::try new Default::default ?; // With custom options let mut model = SparseTextEmbedding::try new SparseInitOptions::new SparseModel::SPLADEPPV1 .with show download progress true , ?; let documents = vec "passage: Hello, World ", "query: Hello, World ", "passage: This is an example passage.", "fastembed-rs is licensed under Apache 2.0" ; // Generate embeddings with the default batch size, 256 let embeddings: Vec