Pari
Find similar records and deduplicate datasets with Rust, Python, or your terminal.
Pari builds MinHash signatures, finds approximate similarity candidates with LSH,
and groups duplicate records. Start in memory, save an index to a versioned .pari
file, or process bounded batches from larger datasets through the same Rust engine.
Pari 0.1.1 alpha targets Python 3.10+ and Rust 1.81+ for the public crates. The project is pre-1.0; see the compatibility policy. The Python extension requires Rust 1.83 when built from source.
Installation
Python
python -m pip install "pari-similarity==0.1.1"
The distribution name is pari-similarity; the import name is pari.
Rust
cargo add pari-core@0.1.1 pari-index@0.1.1 pari-store@0.1.1
Use only the layers your application needs. Add pari-format = "0.1.1" when
working directly with codecs or persisted-format metadata. Keep public crates on
the same release version.
CLI
Download an archive from the 0.1.1 release,
verify it against SHA256SUMS, extract it, and put pari on your PATH.
| Platform | Archive |
|---|---|
| Linux x86_64 | pari-0.1.1-linux.tar.gz |
| Linux arm64 | pari-0.1.1-linux-arm64.tar.gz |
| macOS arm64 | pari-0.1.1-macos.tar.gz |
| Windows x86_64 | pari-0.1.1-windows.zip |
Packages and archives become available when the tagged release workflow completes. See release notes and platform support.
Compare Records
Build two signatures and estimate their Jaccard similarity:
from pari import MinHash
first = MinHash.from_values(
[b"new york", b"rust", b"search"], num_perm=128, seed=7
)
second = MinHash.from_values(
[b"new york", b"python", b"search"], num_perm=128, seed=7
)
print(first.jaccard(second))
Use the same permutation count and seed for signatures you compare.
The Python guide covers persistent indexes, batch operations,
and the explicit MinHash64 and Index64 APIs.
Index and Search
Create documents.jsonl with one record per line:
{"key":1,"values":["new york","rust","search"]}
{"key":2,"values":["new york","python","search"]}
Build a persistent index and verify its contents:
pari index --input documents.jsonl --output documents.pari --json
pari verify --index documents.pari --json
pari search --help
Indexes use safe, versioned persistence. LSH returns approximate candidates; verify candidates against source features when your application needs an exact similarity threshold.
Deduplicate a Dataset
Group duplicate candidates through the native engine:
pari dedup --input documents.jsonl --emit groups --json
Python's DedupeIndex and deduplicate add bounded batches, exact verification,
representative selection, and progress callbacks. Optional adapters read
PyArrow/Parquet, Polars, and Hugging Face datasets.
- Python deduplication
- Dataset integrations
- Text deduplication and corpus audits
- Code corpus deduplication
- Entity matching
Reference
Use --help to explore commands and options:
pari --help
pari index --help
pari dedup --help
- CLI reference and Python API
- Architecture and storage backends
- Datasketch 2.x interoperability
- LSH planning, observability, and CPU parallelism
- Benchmark methodology and recorded benchmark evidence
- Compatibility, changelog, and release procedure
The committed benchmark scale envelope is 1M records. Performance figures apply to the environment and workload recorded with each result.
Developing
git clone https://github.com/dipeshbabu/pari.git
cd pari
python -m pip install "pre-commit==4.6.2"
pre-commit install
pre-commit run --all-files
cargo fmt --all -- --check
cargo clippy --workspace --all-targets --all-features -- -D warnings
cargo test --workspace --all-targets --all-features
CI remains authoritative. Build the CLI with cargo build --release -p pari-cli.
For Python development, install the checkout with python -m pip install ..
| Path | Purpose |
|---|---|
crates/pari-core |
MinHash signatures and similarity primitives |
crates/pari-index |
LSH candidates and duplicate grouping |
crates/pari-format |
Codecs and versioned file format |
crates/pari-store |
Persistent local indexes |
crates/pari-cli |
Command-line workflows |
crates/pari-py, python/pari |
Python bindings and APIs |
Contributing
See CONTRIBUTING.md for setup, checks, and compatibility rules. Report bugs and propose changes through GitHub issues. For security reports, follow SECURITY.md.
License
Pari is released under the MIT license. Third-party attribution is recorded in NOTICE.
Metadata
Release files for pari-similarity 0.1.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| pari_similarity-0.1.1.tar.gz | 154.1 kB | With provenance | Details for pari_similarity-0.1.1.tar.gz |
Built distributions (wheels)
| File | Actions Reset | |||
|---|---|---|---|---|
| pari_similarity-0.1.1-cp310-abi3-win_amd64.whl | CPython 3.10 | abi3 | Windows x86-64 | Details for pari_similarity-0.1.1-cp310-abi3-win_amd64.whl |
| pari_similarity-0.1.1-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl | CPython 3.10 | abi3 | Linux glibc 2.17+ x86-64 | Details for pari_similarity-0.1.1-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
| pari_similarity-0.1.1-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl | CPython 3.10 | abi3 | Linux glibc 2.17+ ARM64 | Details for pari_similarity-0.1.1-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl |
| pari_similarity-0.1.1-cp310-abi3-macosx_11_0_arm64.whl | CPython 3.10 | abi3 | macOS 11.0+ ARM64 | Details for pari_similarity-0.1.1-cp310-abi3-macosx_11_0_arm64.whl |
Total release size: 2.2 MB
Release files / pari_similarity-0.1.1.tar.gz
| Download URL | pari_similarity-0.1.1.tar.gz |
|---|---|
| Size | 154.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
a475fd30082adb9686965048d2bad6df345cedb55e653224b6099335e2f4ac6c
|
|
BLAKE2b-256 checksum How to use checksums |
606e41d96d45e5616494f859ee05511aa06a11640e5a464d274e903f01ba529a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Nov 4, 2026.
Transparency logRelease files / pari_similarity-0.1.1-cp310-abi3-win_amd64.whl
| Download URL | pari_similarity-0.1.1-cp310-abi3-win_amd64.whl |
|---|---|
| Size | 441.5 kB |
| Tags | CPython 3.10 Windows x86-64 abi3 |
|
SHA-256 checksum How to use checksums |
80976a575468f0613592da262bbcf0dea3daf655fef93d86c9919482b2bab99c
|
|
BLAKE2b-256 checksum How to use checksums |
d4e7666d67f554fa1d76aca85f04b9e9be29c2720dc453e3fe1faf5a631a5b75
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Nov 4, 2026.
Transparency logRelease files / pari_similarity-0.1.1-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
| Download URL | pari_similarity-0.1.1-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
|---|---|
| Size | 544.3 kB |
| Tags | CPython 3.10 Linux glibc 2.17+ x86-64 abi3 |
|
SHA-256 checksum How to use checksums |
43f14789cc0fce5e0896695b2a94fab4e6325531751f2cbc20465e3735f6021c
|
|
BLAKE2b-256 checksum How to use checksums |
48f96c1c47700e45aba991701a9dda497d1248950cca4535c39e6b6fd5765a15
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Nov 4, 2026.
Transparency logRelease files / pari_similarity-0.1.1-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
| Download URL | pari_similarity-0.1.1-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl |
|---|---|
| Size | 519.4 kB |
| Tags | CPython 3.10 Linux glibc 2.17+ ARM64 abi3 |
|
SHA-256 checksum How to use checksums |
57485c8f80542cea9689764dc9b42240170521fc842f9ca674a79b5a92b873c0
|
|
BLAKE2b-256 checksum How to use checksums |
30b9ce998b4653c3c63202c6c8f9723dafaa869d3cf0d76ee338b703fa4478e0
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Nov 4, 2026.
Transparency logRelease files / pari_similarity-0.1.1-cp310-abi3-macosx_11_0_arm64.whl
| Download URL | pari_similarity-0.1.1-cp310-abi3-macosx_11_0_arm64.whl |
|---|---|
| Size | 498.7 kB |
| Tags | CPython 3.10 abi3 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
7f0871bc2171cf5f07f6aaad490ee768937557ab6eb5127cb38dea28be8eae83
|
|
BLAKE2b-256 checksum How to use checksums |
01dcc2ea610999aa368b5b5df475cb307b409429313512d5d5b6e7265fdabe95
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Nov 4, 2026.
Transparency logSecurity for pari-similarity 0.1.1
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
Full provenance
All 5 files in this release have been uploaded with provenance metadata.
Attestation for pari_similarity-0.1.1.tar.gz
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Nov 4, 2026.
Transparency logA note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.