candding
Pure candle embeddings for Rust with no ONNX: dense, sparse, multi-vector and rerank models ship verified; Constella and image models remain on the roadmap.
candding runs embedding models on candle with no ONNX runtime. Every architecture is implemented in the crate on candle-core and candle-nn, and every registered model is compared against its reference implementation's output before it appears in the catalog.
What ships
| Output | Models | Families | Page |
|---|---|---|---|
| Dense | 35 | BERT, JinaBERT, XLM-RoBERTa, Qwen3, NomicBERT, GTE (new), Gemma3, MPNet, ModernBERT | Pipeline |
| Sparse | 6 | BERT, Qwen3, XLM-RoBERTa, JinaBERT, BM25 with no encoder | Sparse output |
| Multi-vector | 4 | BERT, XLM-RoBERTa, XLM-RoBERTa (flash) | Multi-vector output |
| Rerank | 8 | Qwen3, XLM-RoBERTa, BERT, JinaBERT, XLM-RoBERTa (flash) | Rerank output |
The table is generated from the registry. The model catalog lists every model with its status per device and dtype, and testing says what "verified" means.
The pipeline
A dense model runs text → template → tokenizer → encoder → pooling → normalize, with the published tokenizer.json and right padding. The other outputs replace the stages after the encoder:
| Output | After the encoder |
|---|---|
| Dense | pooling (CLS, mean or last token), the repository's Dense modules, L2 normalization |
| Sparse | a head that weights the model's own vocabulary; Qdrant/bm25 has no encoder and computes its weights from the text |
| Multi-vector | a head that keeps one L2-normalized row per surviving token |
| Rerank | a head that returns one score; the query and the document are tokenized together, as a pair, a rendered prompt or one pair per window of a long document |
Pipeline has every stage with its tensor shapes.
Where to go
- Getting started: install, embed, choose a device.
- Concepts: the pipeline, pooling and templates, devices and dtypes, model files, and the sparse, multi-vector and rerank outputs.
- Comparison: candding beside fastembed, text-embeddings-inference, candle-transformers and others.
- Roadmap: image models, the Constella family, quantized weights, Python bindings and the pipelines around the catalog.