simsimd
Portable mixed-precision BLAS-like vector math library for x86 and ARM
What it is and what it does
SimSIMD is a mixed-precision vector math library that implements over 350 SIMD-optimized kernels for computing distances and similarities between vectors. It supports float64, float32, float16, bfloat16, int8, int4, and binary vectors, as well as sparse and complex vectors. The library is designed to replace or supplement BLAS level-1 operations and scipy.spatial functions with significantly faster implementations that leverage modern CPU instruction sets (AVX-512, SVE, NEON) on both x86 and ARM architectures.
The package ships as pre-compiled wheels for multiple platforms and Python versions, with no runtime dependencies. It handles operations like Euclidean and cosine distances for vector search, dot-products for DSP and quantum computing, Hamming and Jaccard distances for bit-level comparisons, set intersections for sparse vectors, Mahalanobis distance for scientific computing, and divergence measures for probability distributions. The library is commonly used in AI, search, and database workloads where vector similarity computation is a performance bottleneck.
Use it for:
- Vector search and similarity retrieval in semantic search or embedding-based recommendation systems
- Batch computation of pairwise distances in clustering or nearest-neighbor algorithms
- Mixed-precision inference in AI pipelines where bfloat16 or float16 vectors need fast similarity scoring
- Sparse vector operations and set intersections for text analysis or information retrieval
- Geospatial distance calculations and scientific computing with Mahalanobis distance or quadratic forms
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
SimSIMD provides SIMD-optimized kernels for computing vector distances, dot-products, and similarity measures across multiple data types and precisions, with support for spatial, probabilistic, and bit-level operations.
Yes. SimSIMD is actively maintained, has no dependencies, and offers significant performance improvements over standard libraries like scipy and NumPy for vector operations. The permissive Apache-2.0 license and broad platform support (x86, ARM, multiple Python versions) make it a low-risk addition to performance-critical workloads. Install it if vector similarity or distance computation is a measurable bottleneck in your application.
Install
simsimd on PyPI
pip
pip install simsimduv
uv add simsimdpoetry
poetry add simsimdInstalling simsimd
Before you install
Medium install friction due to compiled wheels for multiple platforms. The package is actively maintained with a recent release and no runtime dependencies, making it straightforward to integrate once installed.
License in practice
Licensed under Apache-2.0 (permissive), allowing use in commercial and proprietary projects without significant legal constraints.
Quickstart
pip install simsimd
import simsimd
# Compute cosine distance between two float32 vectors
dist = simsimd.cosine(a, b)
Verify before relying
- Whether Python 3.9 is actually supported despite appearing in classifiers but not in friction_evidence wheels
- Performance gains relative to scipy.spatial.distance on typical workloads outside the benchmarked 1536d case
- Whether complex vector support is available through the Python API or only in C
Package facts
| License | Apache-2.0 (permissive) |
| Python support | not specified |
| Install friction | medium — platform-specific wheel |
| Runtime dependencies | none |
| Maintenance | actively maintained — 160 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 3,762,725/month — #2,501 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: simsimd-6.5.16-cp310-cp310-macosx_10_9_x86_64.whl; simsimd-6.5.16-cp310-cp310-macosx_11_0_arm64.whl; simsimd-6.5.16-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl; simsimd-6.5.16-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl; simsimd-6.5.16-cp310-cp310-musllinux_1_2_aarch64.whl; simsimd-6.5.16-cp310-cp310-musllinux_1_2_x86_64.whl; simsimd-6.5.16-cp310-cp310-win_amd64.whl; simsimd-6.5.16-cp310-cp310-win_arm64.whl; simsimd-6.5.16-cp311-cp311-macosx_10_9_x86_64.whl; simsimd-6.5.16-cp311-cp311-macosx_11_0_arm64.whl; simsimd-6.5.16-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl; simsimd-6.5.16-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl; simsimd-6.5.16-cp311-cp311-musllinux_1_2_aarch64.whl; simsimd-6.5.16-cp311-cp311-musllinux_1_2_x86_64.whl; simsimd-6.5.16-cp311-cp311-win_amd64.whl; simsimd-6.5.16-cp311-cp311-win_arm64.whl; simsimd-6.5.16-cp312-cp312-macosx_10_13_x86_64.whl; simsimd-6.5.16-cp312-cp312-macosx_11_0_arm64.whl; simsimd-6.5.16-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl; simsimd-6.5.16-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Tags
More Artificial Intelligence packages
LiteLLM provides a unified Python interface to…
permissive · top 100 on PyPI
huggingface-hubClient library and CLI tool for downloading,…
permissive · top 100 on PyPI
langchainLangChain provides a framework for building…
permissive · top 1,000 on PyPI
hf-xethf-xet provides chunk-based deduplication and…
permissive · top 1,000 on PyPI
tokenizersTokenizers converts raw text into token…
permissive · top 1,000 on PyPI
transformersTransformers provides a unified framework for…
permissive · top 1,000 on PyPI
numkongNumKong provides mixed-precision linear algebra…
permissive · top 15,000 on PyPI
usearchUSearch provides approximate nearest-neighbor…
permissive · top 15,000 on PyPI
faiss-gpuFaiss provides GPU-accelerated similarity…
permissive · top 15,000 on PyPI
scannScaNN performs efficient vector similarity…
permissive · top 15,000 on PyPI
scikit-miscscikit-misc provides miscellaneous tools for…
permissive · top 15,000 on PyPI
annoyAnnoy searches for approximate nearest…
permissive · top 5,000 on PyPI
mklIntel oneAPI Math Kernel Library provides…
unclear · top 15,000 on PyPI
pysimdjsonPython bindings for the simdjson…
unclear · top 5,000 on PyPI
stringzillaStringZilla provides SIMD and SWAR-accelerated…
permissive · top 5,000 on PyPI
traittypesProvides custom trait types for scientific…
permissive · top 5,000 on PyPI