candding
Pure candle embeddings for Rust with no ONNX, verified against sentence-transformers on CPU, Metal and CUDA.
candding runs text 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 sentence-transformers reference vectors before it appears in the catalog.
The pipeline
Text → template → tokenizer → encoder → pooling → normalize.
Each stage is one module: templates come from the model descriptor, the tokenizer is the published tokenizer.json with right padding, the encoder is a family implementation such as BERT, pooling is CLS, mean or last token, and normalization is the L2 norm the reference applies. The pipeline page walks through the stages with the shapes at each step.
What you get
The three numbers come from the registry: the model catalog lists every model with its backend status, and the testing page explains what "verified" means.
Where to go
- Getting started: install, embed, choose a device.
- Concepts: pipeline, pooling and templates, devices and dtypes, model files.
- Comparison: how candding relates to fastembed, text-embeddings-inference and candle-transformers.
- Roadmap: the families that come next, starting with Qwen3-Embedding and EmbeddingGemma.