candding

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

13
verified models
3
backends from one code path
130
golden tests against sentence-transformers

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.

On this page