EmbedAnything generates embeddings from many kinds of source material and streams them into a vector database. The pipeline is written in Rust and exposed to Python through pyo3 bindings, so you can call it from Python without writing Rust. It handles text files, Markdown, PDFs, websites, images, audio, and sampled video frames, and covers dense, sparse, ONNX, model2vec, late-interaction, and reranker models.
Vector streaming is the pipeline's central idea: file preprocessing, model inference, and indexing run on separate threads connected by Rust channels, and embeddings are written straight to the vector database rather than accumulating in memory. Adapters exist for Elastic, Weaviate, Pinecone, Qdrant, Milvus, and Chroma, and the adapter interface is documented for adding others.
Two local backends are supported. Candle loads any Hugging Face model without requiring an ONNX conversion, and the ONNX runtime path covers BERT and ColPali models with dtype control such as FP16. Cloud embedding models are also available, for example Cohere Embed v4 through frompretrainedcloud. There is no PyTorch dependency, and a separate GPU package covers hardware acceleration and models such as ColPali.
Chunking and pooling are configurable per run. TextEmbedConfig sets chunk size, batch size, buffer size, and a splitting strategy of sentence, word, or semantic, where semantic splitting uses a second encoder to find boundaries; late chunking preserves context across sentence boundaries. Pooling defaults to whatever the checkpoint declares and can be overridden with mean, CLS, or last-token pooling, and gated repositories are reached with a Hugging Face token or the HF_TOKEN environment variable.
Model families cover Jina, BERT, CLIP, Whisper, ColPali, ColBERT, SPLADE, Model2Vec, Qwen3-Embedding, Gemma3 embeddings, and rerankers including Jina Reranker, bge-reranker, and Qwen3-Reranker.
Features
- Multimodal ingestion: PDFs, text and Markdown, websites, images, audio, and sampled video frames through one interface
- Vector streaming: separate threads for preprocessing, inference, and indexing, with embeddings written directly to the database
- Vector database adapters: Elastic, Weaviate, Pinecone, Qdrant, Milvus, and Chroma, with a documented path for adding more
- Two local backends: Candle for any Hugging Face checkpoint, ONNX runtime for BERT and ColPali with dtype selection
- Cloud models: frompretrainedcloud reaches hosted embedding models such as Cohere Embed v4
- Embedding types: dense, sparse (SPLADE), late-interaction (ColBERT, ColPali), model2vec, and rerankers
- Chunking strategies: sentence, word, and semantic splitting, plus late chunking for cross-boundary context
- Pooling control: mean, CLS, or last-token pooling overrides the checkpoint's declared method
- No PyTorch dependency: a smaller memory footprint and simpler cloud deployment, with a separate GPU package for acceleration
- Remote sources: files can be imported directly from an AWS S3 bucket
- Python and Rust APIs: pyo3 bindings alongside the native crate, with a prebuilt Docker server image
