Metadata-Version: 2.4
Name: candding
Version: 0.1.0
Classifier: Operating System :: MacOS
Classifier: Operating System :: POSIX :: Linux
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: Implementation :: CPython
Classifier: Programming Language :: Rust
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
Classifier: Typing :: Typed
Requires-Dist: numpy>=1.16
License-File: LICENSE-APACHE
License-File: LICENSE-MIT
License-File: NOTICE
Summary: Pure candle embeddings with no ONNX: dense, sparse, multi-vector and rerank models, returned as NumPy arrays
Keywords: embeddings,candle,retrieval,rerank,semantic-search
Home-Page: https://candding.rust-dd.com
License-Expression: Apache-2.0 OR MIT
Requires-Python: >=3.9
Description-Content-Type: text/markdown; charset=UTF-8; variant=GFM
Project-URL: Changelog, https://github.com/rust-dd/candding/blob/main/CHANGELOG.md
Project-URL: Documentation, https://candding.rust-dd.com/docs/python
Project-URL: Homepage, https://candding.rust-dd.com
Project-URL: Repository, https://github.com/rust-dd/candding

# candding

Run dense, sparse, multi-vector and reranking models from Python on Rust's candle, with no ONNX runtime. Every model in the catalog is checked against its reference implementation, and every result comes back as a NumPy array.

```bash
pip install candding
```

```python
import candding

model = candding.TextEmbedding("BAAI/bge-small-en-v1.5")
docs = model.passage_embed(["Embeddings map text to vectors.", "Rust is a systems language."])
query = model.query_embed(["what do embeddings do"])
print(query @ docs.T)

reranker = candding.TextCrossEncoder("BAAI/bge-reranker-base")
print(reranker.rerank("what do embeddings do", ["Embeddings map text to vectors.", "Rust is a systems language."]))
```

| Platform | Devices |
|---|---|
| Linux x86-64 and aarch64 | CPU |
| macOS on Apple Silicon | CPU and Metal (`device="auto"` picks Metal) |

Wheels serve CPython 3.9 and newer. Models download from the Hugging Face Hub into its standard cache on first use, and `HF_TOKEN` unlocks a gated model.

- Python guide: https://candding.rust-dd.com/docs/python
- Model catalog, with each model's status per device and dtype: https://candding.rust-dd.com/docs/models
- Source: https://github.com/rust-dd/candding

Licensed under Apache-2.0 or MIT, at your option.

