Skip to main content

Machine learning framework for building object trackers and similarity search engines

Project description

Similari

Newer versions (renamed):

Rust Rust Rust

PyPI version

Older versions:

Rust Rust Rust

:star: Star us on GitHub — it motivates us a lot!

Similari is a Rust framework with Python bindings that helps build sophisticated tracking systems. With Similari one can develop highly efficient parallelized SORT, DeepSORT, and other sophisticated single observer (e.g. Cam) or multi-observer tracking engines.

Introduction

The primary purpose of Similari is to provide means to build sophisticated in-memory multiple object tracking engines.

The framework helps build various kinds of tracking and similarity search engines - the simplest one that holds vector features and allows comparing new vectors against the ones kept in the database. More sophisticated engines operate over tracks - a series of observations for the same feature collected during the lifecycle. Such systems are often used in video processing or other systems where the observer receives fuzzy or changing observation results.

Out-of-The-Box Stuff

Similari is a framework to build custom trackers, however it provides certain algorithms as an end-user functionality:

Bounding Box Kalman filter, that predicts rectangular bounding boxes axis-aligned to scene, supports the oriented (rotated) bounding boxes as well.

2D Point Kalman filter, that predicts 2D point motion.

2D Point Vector Kalman filter, that predicts the vector of independent 2D points motion (used in the Keypoint Tracker).

Bounding box clipping, that allows calculating the area of intersection for axis-aligned and oriented (rotated) bounding boxes.

Non-Maximum Suppression (NMS) - filters rectangular bounding boxes co-axial to scene, and supports the oriented bounding boxes.

SORT tracking algorithm (axis-aligned and oriented boxes are supported) - IoU and Mahalanobis distances are supported.

Batch SORT tracking algorithm (axis-aligned and oriented boxes are supported) - IoU and Mahalanobis distances are supported. Batch tracker allows passing multiple scenes to tracker in a single batch and get them back. If the platform supports batching (like Nvidia DeepStream or Intel DL Streamer) the batch tracker is more beneficial to use.

VisualSORT tracking - a DeepSORT-like algorithm (axis-aligned and oriented boxes are supported) - IoU and Mahalanobis distances are supported for positional tracking, euclidean, cosine distances are used for visual tracking on feature vectors.

Batch VisualSORT - batched VisualSORT flavor;

Applicability Notes

Although Similari allows building various tracking and similarity engines, there are competitive tools that sometimes may fit better. The section will explain where it is applicable and what alternatives exist.

Similari fits best for the tracking tasks where objects are described by multiple observations for a certain feature class, not a single feature vector. Also, their behavior is dynamic - you remove them from the index or modify them as often as add new ones. This is a very important point - it is less efficient than tools that work with growing or static object spaces.

Fit: track the person across the room: person ReID, age/gender, and face features are collected multiple times during the tracking and used to merge tracks or provide aggregated results at the end of the track;

Not fit: plagiarism database, when a single document is described by a number (or just one) constant ReID vectors, documents are added but not removed. The task is to find the top X most similar documents to a checked.

If your task looks like Not fit, can use Similari, but you're probably looking for HNSW or NMS implementations:

Similari objects support following features:

Track lifecycle - the object is represented by its lifecycle (track) - it appears, evolves, and disappears. During its lifetime object evolves according to its behavioral properties (attributes, and feature observations).

Observations - Similari assumes that an object is observed by an observer entity that collects its features (uniform vectors) and custom observation attributes (like GPS or screen box position)multiple times. Those features are presented by vectors of float numbers and observation attributes. When the observation happened, the track is updated with gathered features. Future observations are used to find similar tracks in the index and merge them.

Track Attributes - Arbitrary attributes describe additional track properties aside from feature observations. Track attributes is crucial part when you are comparing objects in the wild, because there may be attributes disposition when objects are incompatible, like animal_type that prohibits you from comparing dogs and cats between each other. Another popular use of attributes is a spatial or temporal characteristic of an object, e.g. objects that are situated at distant locations at the same time cannot be compared. Attributes in Similari are dynamic and evolve upon every feature observation addition and when objects are merged. They are used in both distance calculations and compatibility guessing (which decreases compute space by skipping incompatible objects).

If you plan to use Similari to search in a large index, consider object attributes to split the lookup space. If the attributes of the two tracks are not compatible, their distance calculations are skipped.

Performance

The Similari is fast. It is usually faster than trackers built with Python and NumPy.

To run visual feature calculations performant the framework uses ultraviolet - the library for fast SIMD computations.

Parallel computations are implemented with index sharding and parallel computations based on a dedicated thread workers pool.

Vector operations performance depends a lot on the optimization level defined for the build. On low or default optimization levels Rust may not use f32 vectorization, so when running benchmarks take care of proper optimization levels configured.

Rust optimizations

Use RUSTFLAGS="-C target-cpu=native" to enable all cpu features like AVX, AVX2, etc. It is beneficial to ultraviolet.

Alternatively you can add build instructions to .cargo/config:

[build]
rustflags = "-C target-cpu=native"

Take a look at benchmarks for numbers.

Performance Benchmarks

Some benchmarks numbers are presented here: Benchmarks

You can run your own benchmarks by:

rustup default nightly
cargo bench

Apple Silicone Build Notes

You may need to add following lines into your ~/.cargo/config to build the code on Apple Silicone:

[build]
rustflags = "-C target-cpu=native"

# Apple Silicone fix
[target.aarch64-apple-darwin]
rustflags = [
    "-C", "link-arg=-undefined",
    "-C", "link-arg=dynamic_lookup",
]

Python API

Python interface exposes ready-to-use functions and classes of Similari. As for now, the Python interface provides:

  • the Kalman filter for axis-aligned and oriented (rotated) boxes prediction;
  • the Kalman filter for 2D point motion prediction;
  • the 2D Point Vector Kalman filter, that predicts the vector of independent 2D points motion (used in the Keypoint Tracker);
  • NMS (Non-maximum suppression);
  • the Sutherland-Hodgman clipping, intersection area for oriented (rotated) boxes;
  • SORT with IoU and Mahalanobis metric;
  • BatchSORT with IoU and Mahalanobis metric;
  • VisualSORT - DeepSORT-like tracker with euclidean/cosine metric for visual features and IoU/Mahalanobis metric for positional tracking (VisualSort).
  • BatchVisualSORT - batched VisualSORT flavor;

Python API classes and functions can be explored in the python documentation and tiny examples provided.

There is also MOTChallenge evaluation kit provided which you can use to simply evaluate trackers performance and metrics.

Install Python API from PyPi

Please, keep in mind that the PyPi package is built to conform broad range of platforms, so it may not be as fast as the one you build locally for your platform (see the following sections).

Platforms:

  • Linux: X86_64, ARM64, ARMv7;
  • Windows: X86_64;
  • MacOS: X86_64, ARM64.
pip3 install similari-trackers-rs

Build Python API in Docker

You can build the wheel in the Docker and if you want to install it in the host system, copy the resulting package to the host system as demonstrated by the following examples.

Rust 1.67 Base Image

If you use other rust libraries you may find it beneficial to build with base Rust container (and Python 3.8):

docker build -t similari-trackers-rs -f docker/rust_1.67/Dockerfile .

# optional: copy and install to host system
docker run --rm -it -v $(pwd)/distfiles:/tmp similari-trackers-rs cp -R /opt/dist /tmp
pip3 install --force-reinstall distfiles/dist/*.whl

Python 3.8 Base Image

Python 3.8 is still a very frequently used. Here is how to build Similari with it:

docker build -t similari-trackers-rs -f docker/python_3.8/Dockerfile .

# optional: copy and install to host system
docker run --rm -it -v $(pwd)/distfiles:/tmp similari-trackers-rs cp -R /opt/dist /tmp
pip3 install --force-reinstall distfiles/dist/*.whl

Python 3.10 Base Image

If you use the most recent Python environment, you can build with base Python container:

docker build -t similari-trackers-rs -f docker/python_3.10/Dockerfile .

# optional: copy and install to host system
docker run --rm -it -v $(pwd)/distfiles:/tmp similari-trackers-rs cp -R /opt/dist /tmp
pip3 install --force-reinstall distfiles/dist/*.whl

NOTE: If you are getting the pip3 error like:

ERROR: similari-trackers-rs-0.26.4-cp38-cp38-manylinux_2_28_x86_64.whl is not a supported wheel on this platform.

It means that the Python version in the host system doesn't match to the one that is in the image used to build the wheel.

Build Python API in Host System

Linux Instruction

  1. Install up-to-date Rust toolkit:
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
source $HOME/.cargo/env
rustup update
  1. Install build-essential tools apt install build-essential -y.

  2. Install Python3 (>= 3.8) and the development files (python3-dev).

  3. Install Maturin:

pip3 install --upgrade maturin~=0.15
  1. Not in VENV. Build the python module:
RUSTFLAGS=" -C target-cpu=native -C opt-level=3" maturin build --release --out dist
pip3 install --force-reinstall dist/*.whl
  1. In VENV. Build the python module:
RUSTFLAGS=" -C target-cpu=native -C opt-level=3" maturin develop
  1. Usage examples are located at python.
  2. MOT Challenge Docker image for Similari trackers and conventional trackers is here. You can easily build all-in-one Docker image and try ours trackers.

Manuals and Articles

Collected articles about how the Similari can be used to solve specific problems.

Medium.com

Usage Examples

Take a look at samples in the repo:

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

similari_trackers_rs-0.26.10.tar.gz (172.4 kB view details)

Uploaded Source

Built Distributions

similari_trackers_rs-0.26.10-pp310-pypy310_pp73-manylinux_2_28_x86_64.whl (1.6 MB view details)

Uploaded PyPy manylinux: glibc 2.28+ x86-64

similari_trackers_rs-0.26.10-pp310-pypy310_pp73-manylinux_2_28_aarch64.whl (1.6 MB view details)

Uploaded PyPy manylinux: glibc 2.28+ ARM64

similari_trackers_rs-0.26.10-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl (1.6 MB view details)

Uploaded PyPy manylinux: glibc 2.28+ x86-64

similari_trackers_rs-0.26.10-pp39-pypy39_pp73-manylinux_2_28_aarch64.whl (1.6 MB view details)

Uploaded PyPy manylinux: glibc 2.28+ ARM64

similari_trackers_rs-0.26.10-pp38-pypy38_pp73-manylinux_2_28_x86_64.whl (1.6 MB view details)

Uploaded PyPy manylinux: glibc 2.28+ x86-64

similari_trackers_rs-0.26.10-pp38-pypy38_pp73-manylinux_2_28_aarch64.whl (1.6 MB view details)

Uploaded PyPy manylinux: glibc 2.28+ ARM64

similari_trackers_rs-0.26.10-cp312-none-win_amd64.whl (583.0 kB view details)

Uploaded CPython 3.12 Windows x86-64

similari_trackers_rs-0.26.10-cp312-cp312-manylinux_2_28_x86_64.whl (1.6 MB view details)

Uploaded CPython 3.12 manylinux: glibc 2.28+ x86-64

similari_trackers_rs-0.26.10-cp312-cp312-manylinux_2_28_aarch64.whl (1.6 MB view details)

Uploaded CPython 3.12 manylinux: glibc 2.28+ ARM64

similari_trackers_rs-0.26.10-cp312-cp312-macosx_11_0_arm64.whl (703.6 kB view details)

Uploaded CPython 3.12 macOS 11.0+ ARM64

similari_trackers_rs-0.26.10-cp312-cp312-macosx_10_12_x86_64.whl (726.0 kB view details)

Uploaded CPython 3.12 macOS 10.12+ x86-64

similari_trackers_rs-0.26.10-cp311-none-win_amd64.whl (582.5 kB view details)

Uploaded CPython 3.11 Windows x86-64

similari_trackers_rs-0.26.10-cp311-cp311-manylinux_2_28_x86_64.whl (1.6 MB view details)

Uploaded CPython 3.11 manylinux: glibc 2.28+ x86-64

similari_trackers_rs-0.26.10-cp311-cp311-manylinux_2_28_aarch64.whl (1.6 MB view details)

Uploaded CPython 3.11 manylinux: glibc 2.28+ ARM64

similari_trackers_rs-0.26.10-cp311-cp311-macosx_11_0_arm64.whl (702.7 kB view details)

Uploaded CPython 3.11 macOS 11.0+ ARM64

similari_trackers_rs-0.26.10-cp311-cp311-macosx_10_12_x86_64.whl (726.1 kB view details)

Uploaded CPython 3.11 macOS 10.12+ x86-64

similari_trackers_rs-0.26.10-cp310-none-win_amd64.whl (582.5 kB view details)

Uploaded CPython 3.10 Windows x86-64

similari_trackers_rs-0.26.10-cp310-cp310-manylinux_2_28_x86_64.whl (1.6 MB view details)

Uploaded CPython 3.10 manylinux: glibc 2.28+ x86-64

similari_trackers_rs-0.26.10-cp310-cp310-manylinux_2_28_aarch64.whl (1.6 MB view details)

Uploaded CPython 3.10 manylinux: glibc 2.28+ ARM64

similari_trackers_rs-0.26.10-cp310-cp310-macosx_11_0_arm64.whl (702.6 kB view details)

Uploaded CPython 3.10 macOS 11.0+ ARM64

similari_trackers_rs-0.26.10-cp310-cp310-macosx_10_12_x86_64.whl (726.1 kB view details)

Uploaded CPython 3.10 macOS 10.12+ x86-64

similari_trackers_rs-0.26.10-cp39-none-win_amd64.whl (582.8 kB view details)

Uploaded CPython 3.9 Windows x86-64

similari_trackers_rs-0.26.10-cp39-cp39-manylinux_2_28_x86_64.whl (1.6 MB view details)

Uploaded CPython 3.9 manylinux: glibc 2.28+ x86-64

similari_trackers_rs-0.26.10-cp39-cp39-manylinux_2_28_aarch64.whl (1.6 MB view details)

Uploaded CPython 3.9 manylinux: glibc 2.28+ ARM64

similari_trackers_rs-0.26.10-cp39-cp39-macosx_11_0_arm64.whl (702.5 kB view details)

Uploaded CPython 3.9 macOS 11.0+ ARM64

similari_trackers_rs-0.26.10-cp39-cp39-macosx_10_12_x86_64.whl (726.4 kB view details)

Uploaded CPython 3.9 macOS 10.12+ x86-64

similari_trackers_rs-0.26.10-cp38-none-win_amd64.whl (582.4 kB view details)

Uploaded CPython 3.8 Windows x86-64

similari_trackers_rs-0.26.10-cp38-cp38-manylinux_2_28_x86_64.whl (1.6 MB view details)

Uploaded CPython 3.8 manylinux: glibc 2.28+ x86-64

similari_trackers_rs-0.26.10-cp38-cp38-manylinux_2_28_aarch64.whl (1.6 MB view details)

Uploaded CPython 3.8 manylinux: glibc 2.28+ ARM64

similari_trackers_rs-0.26.10-cp38-cp38-macosx_11_0_arm64.whl (707.4 kB view details)

Uploaded CPython 3.8 macOS 11.0+ ARM64

similari_trackers_rs-0.26.10-cp38-cp38-macosx_10_12_x86_64.whl (726.2 kB view details)

Uploaded CPython 3.8 macOS 10.12+ x86-64

File details

Details for the file similari_trackers_rs-0.26.10.tar.gz.

File metadata

File hashes

Hashes for similari_trackers_rs-0.26.10.tar.gz
Algorithm Hash digest
SHA256 a5d3dce6288d9e2cf95b27d4b52c2d67dc272d858a7c71cd236bb4023dfb1252
MD5 d8709440603c33b363ad348f1ca39c70
BLAKE2b-256 0b6973abb6b6383b0fe56399ce086a557de87000b4bd539702928b9f4c19b1e7

See more details on using hashes here.

File details

Details for the file similari_trackers_rs-0.26.10-pp310-pypy310_pp73-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for similari_trackers_rs-0.26.10-pp310-pypy310_pp73-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 a9d1e40cee72247aaa8b2201605fbd9f69208b8393595bcb3b377c2f2e5304c5
MD5 58b0973b3cd9e086fee077276e86f845
BLAKE2b-256 11647bef13525830e70c0246567f38e8a5ee0d8d75248244a949468094d9b455

See more details on using hashes here.

File details

Details for the file similari_trackers_rs-0.26.10-pp310-pypy310_pp73-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for similari_trackers_rs-0.26.10-pp310-pypy310_pp73-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 d6e26f4092c36309e776a382449b70c3ba5ee2385f53228d445c9b0be8325b8d
MD5 80af815352deabb31396f1235b78dc22
BLAKE2b-256 2b4a6525b6d32a4b28e0f720e9e8fce178e11f50beb2caa976b285cd2f05e12b

See more details on using hashes here.

File details

Details for the file similari_trackers_rs-0.26.10-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for similari_trackers_rs-0.26.10-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 02d2ca8d468a12eb62d89a58bc43669da25c10ddef9f75afb09fa0cf0dfd477c
MD5 cca05b7a537ae485d6c083290e2ce30f
BLAKE2b-256 8875a6d204afc7698187ece06fa35c095b4bab3927664d8b44616e44cabcc9d2

See more details on using hashes here.

File details

Details for the file similari_trackers_rs-0.26.10-pp39-pypy39_pp73-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for similari_trackers_rs-0.26.10-pp39-pypy39_pp73-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 dfcb7c55f03688209c361f3beedb472396894ec70349e63b066009a8af36d408
MD5 caafaf915a5ebe52dcabde3cbfdc22b4
BLAKE2b-256 ee1aa7b86b1110a5645513ac86b53193ebb31e3261dad3e68a29d27a7a1b98e1

See more details on using hashes here.

File details

Details for the file similari_trackers_rs-0.26.10-pp38-pypy38_pp73-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for similari_trackers_rs-0.26.10-pp38-pypy38_pp73-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 73660b9cd3b4b07e515538d33f5d5529078c44664a9cde179523a6853877c8e9
MD5 4b019302c6ced6a1d5871d3424c26098
BLAKE2b-256 81683e7d3edcb52abb4119a259d1d4949315295be2819cdce673e3808f57fd79

See more details on using hashes here.

File details

Details for the file similari_trackers_rs-0.26.10-pp38-pypy38_pp73-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for similari_trackers_rs-0.26.10-pp38-pypy38_pp73-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 47503306105a2355fc4babae51d9d6bc9cbb6cc2c881d7c3fc0805b7c51d4461
MD5 61e580ba85e13685b46aaafa12e8da47
BLAKE2b-256 c80f4cb1a47d16f971ebc55b3ec85cc7bafa4850a67a5b5dd9266542a5191bfa

See more details on using hashes here.

File details

Details for the file similari_trackers_rs-0.26.10-cp312-none-win_amd64.whl.

File metadata

File hashes

Hashes for similari_trackers_rs-0.26.10-cp312-none-win_amd64.whl
Algorithm Hash digest
SHA256 848399512979d7d3690d36b45460ff5af00decfdf01336e7da0e7b4938e698dc
MD5 903d19faf58b0c72b9c33cdd6358a39d
BLAKE2b-256 c144a304644871bfd8705c2da9a210f9f009cee247cbf2566ea428fcd3ba971f

See more details on using hashes here.

File details

Details for the file similari_trackers_rs-0.26.10-cp312-cp312-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for similari_trackers_rs-0.26.10-cp312-cp312-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 dfe4804f8654868ffc04d23abcb706e1a0156eb69fd42ded872632252d32be5e
MD5 de0bc56c2a26df52dc55e1ecda9495dd
BLAKE2b-256 35d91ea562392f0ea3c04f402b573a122a9a55d1aac9d5c058a97c62049656d7

See more details on using hashes here.

File details

Details for the file similari_trackers_rs-0.26.10-cp312-cp312-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for similari_trackers_rs-0.26.10-cp312-cp312-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 160b18c2f5a9dcf751ab3c54856f07bf140b0519036f0343c6aeae7057aef5c5
MD5 6dc440ba6536e97d001ccacb4a752a25
BLAKE2b-256 59f0a2d3ed3d28a39e95854e30bc7a8483d2c086713a434572e9b26bbe117e48

See more details on using hashes here.

File details

Details for the file similari_trackers_rs-0.26.10-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for similari_trackers_rs-0.26.10-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 1af3c580a2c4cc76fb1aad7fa8fd7255467caf6f9cd6a83a773bff0dd4c9e50b
MD5 fd8b9c218692e8207003bbd1daa39136
BLAKE2b-256 3412a4e63d888fc608d04c09ad96b8c33d56546ef3acefbe39c749b6d22ffaf5

See more details on using hashes here.

File details

Details for the file similari_trackers_rs-0.26.10-cp312-cp312-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for similari_trackers_rs-0.26.10-cp312-cp312-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 bbc4a9164a90b23a54df9303643072437359e34633f22368c66f4661a4f6d13e
MD5 3b5f0405ab692e6da274f4fcca24e321
BLAKE2b-256 c429b3a368dd3312ddd244d29cdde641bb63ebcee3774c7d3cfa593b5ee993a1

See more details on using hashes here.

File details

Details for the file similari_trackers_rs-0.26.10-cp311-none-win_amd64.whl.

File metadata

File hashes

Hashes for similari_trackers_rs-0.26.10-cp311-none-win_amd64.whl
Algorithm Hash digest
SHA256 9a30992e9683670f63cd8b412e15b9133d329e9f0b18956ddd39ba35cd528eed
MD5 73484da050515fca59d0697cedb4e7fe
BLAKE2b-256 69ffcacd634be5d03ad64cc39f40bacdc2d947da54548337e78cb15f9ee3209a

See more details on using hashes here.

File details

Details for the file similari_trackers_rs-0.26.10-cp311-cp311-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for similari_trackers_rs-0.26.10-cp311-cp311-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 2ec20150f542c5aa5930f04f5525ec85444dcdb68accfd28bf82d9e0df1f7c7d
MD5 c4fa662c44b2a8c187c8f9a26802bcb5
BLAKE2b-256 af1e5d9605678d7e2ec7182d87436bb83d7692ddf3cc3d056e85e4ab6ebcf718

See more details on using hashes here.

File details

Details for the file similari_trackers_rs-0.26.10-cp311-cp311-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for similari_trackers_rs-0.26.10-cp311-cp311-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 fcaa7c8bb93ca8bbb2cb68ade0f746480e7abfbb0f12d1f0bfa30546108bb67b
MD5 05d5b40f173954302b75c48cdc8fdd4f
BLAKE2b-256 f83ebecd731b99e7728520bb437d0b7bde9beb95fad54f6411bbe80e4470bcce

See more details on using hashes here.

File details

Details for the file similari_trackers_rs-0.26.10-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for similari_trackers_rs-0.26.10-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 cb9300da29bc0483f64f6e4e89a462f2f671b50e58215b1e6d77f53e380eb3b0
MD5 1e1a2b722c8fc02f1d486c1e9a68b44b
BLAKE2b-256 4dc3f9b3423063b5b77197b9036d64dc7a8bf462a24f5d28695cacab9b3ce16d

See more details on using hashes here.

File details

Details for the file similari_trackers_rs-0.26.10-cp311-cp311-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for similari_trackers_rs-0.26.10-cp311-cp311-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 42e88e579a0496aca4eeafa30d0051573a9166f8de22c15ad342058c4c3a12e5
MD5 377a06a1a760b3e8c09548a3298c121e
BLAKE2b-256 2d5dd79ce3ebb9c8ff7cb70d6d6d59c8c0f8a289bf8530f0ce7700f65e4cf805

See more details on using hashes here.

File details

Details for the file similari_trackers_rs-0.26.10-cp310-none-win_amd64.whl.

File metadata

File hashes

Hashes for similari_trackers_rs-0.26.10-cp310-none-win_amd64.whl
Algorithm Hash digest
SHA256 66f1077893fa97fe8a9c5c9364d8d3e1db38a94b673d0c21279f303c7cd40293
MD5 c42fb18ff66db81a25c56567901e21d0
BLAKE2b-256 bb6c737167e02d18fd70a7adca2a769af5743725aace3b938521aed2bb1ff9a5

See more details on using hashes here.

File details

Details for the file similari_trackers_rs-0.26.10-cp310-cp310-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for similari_trackers_rs-0.26.10-cp310-cp310-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 1c83d42e48d810c78e4acdfb20c1c6d4f5a832f92e5f8e159b48de24ad710401
MD5 26da0d4ae6c7a592e2b0b46bec63a9d3
BLAKE2b-256 2155caf98e09f67db046110339621d84d5b017c5d29d5ce69b86e58f57b74807

See more details on using hashes here.

File details

Details for the file similari_trackers_rs-0.26.10-cp310-cp310-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for similari_trackers_rs-0.26.10-cp310-cp310-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 3b39b9af208eb8a843c336c0088c34aff52cd16742ec7cda02c5be73d383e1ed
MD5 7b0866885ae441e8b452a57b9697771e
BLAKE2b-256 b32eb5c3655126a2da4ac18387b7c9528e949a149d21bb98a7f79ad85861d239

See more details on using hashes here.

File details

Details for the file similari_trackers_rs-0.26.10-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for similari_trackers_rs-0.26.10-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 1e7a71d81611d5fbcdc34b7639ac8aed863530088837ebad977028fa108bab57
MD5 69e414b78d3b6c7703037e339ec1a84b
BLAKE2b-256 3a09b4719d92025aa61e62939429c2b09493b986cfcf9c554c30e939ba47ef19

See more details on using hashes here.

File details

Details for the file similari_trackers_rs-0.26.10-cp310-cp310-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for similari_trackers_rs-0.26.10-cp310-cp310-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 fab384695e36767db99465c46c755ca5c441e7d08ac7501cd1b36bb1ccfff55f
MD5 40f9336048a360a4fba8bf524feaa2e3
BLAKE2b-256 7091b73a57eb4d5cf857a72da5c02f78b11753676e47d6328ec0c2b0a42e0f9b

See more details on using hashes here.

File details

Details for the file similari_trackers_rs-0.26.10-cp39-none-win_amd64.whl.

File metadata

File hashes

Hashes for similari_trackers_rs-0.26.10-cp39-none-win_amd64.whl
Algorithm Hash digest
SHA256 b525ab3c07d5a683a879950c7fbbf160d7e8e022a14f95cdae296393c62b9516
MD5 6c23b52bd8bfb13a5634010649b69ae7
BLAKE2b-256 0c16c5e10bc4c4c10a3942a5310ec14db2e7f77887425ccfcb258562421e51cb

See more details on using hashes here.

File details

Details for the file similari_trackers_rs-0.26.10-cp39-cp39-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for similari_trackers_rs-0.26.10-cp39-cp39-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 fb2dab02d285f7633344579eba91c3768465d798f06383c0c2930da763f98155
MD5 ccd8affa3be53c52e67f73b9d5757e51
BLAKE2b-256 d8fec819ee856eee1b8c71449f4259deb20688ac984003c5436668c4d316d33e

See more details on using hashes here.

File details

Details for the file similari_trackers_rs-0.26.10-cp39-cp39-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for similari_trackers_rs-0.26.10-cp39-cp39-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 19be448f85a2a85183453388807dd61657fb48f83cfd8cf66e2b7f5ff781ddfa
MD5 0e3acf41d435c3cd185837d813756e48
BLAKE2b-256 8bce4ebde9b400e1cb5c575051d4e4714cfdf4eddaf52f4d8ce149e1a3b9ec0e

See more details on using hashes here.

File details

Details for the file similari_trackers_rs-0.26.10-cp39-cp39-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for similari_trackers_rs-0.26.10-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 2c64b1b7495b6abb5e72673d91a13ceb82b063fb1e3263f0c7be36f9ef6abb07
MD5 47d57f8cd89e0f7738e4bbd7fe157ff8
BLAKE2b-256 34117511a1b2002af35fa98cfa01562c408c836fb1b9ac6214d06e5ad88e6ff9

See more details on using hashes here.

File details

Details for the file similari_trackers_rs-0.26.10-cp39-cp39-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for similari_trackers_rs-0.26.10-cp39-cp39-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 ca70f3d2512fb9b5d62ce4220adfd972e736d07d4087674b009e297d60d48fb5
MD5 1347bca08fdad7bce902f5c3f3b420c3
BLAKE2b-256 eeb00dc05be075cdae7aa429af8d1870c7e014d0149cb003a45b3212e69d7836

See more details on using hashes here.

File details

Details for the file similari_trackers_rs-0.26.10-cp38-none-win_amd64.whl.

File metadata

File hashes

Hashes for similari_trackers_rs-0.26.10-cp38-none-win_amd64.whl
Algorithm Hash digest
SHA256 32d3a54388f63c8fc61c41ccac2fdac51592e6815bb75b19289ea48d27cabf0d
MD5 7ffb62c1631eb7151640cd8c463ade01
BLAKE2b-256 dfd8be443e4b62a3bc98a14899c4d0cd4f5418315f5984fab090436c2890a08b

See more details on using hashes here.

File details

Details for the file similari_trackers_rs-0.26.10-cp38-cp38-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for similari_trackers_rs-0.26.10-cp38-cp38-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 0b52496444225c68eedb41a2d2aeebc2603997b0f3d23bd47a62f6fc8d8754a2
MD5 9fac514d9386f4218c4f131fef11ab89
BLAKE2b-256 9d274c657b5b9fa8c16e7b63e471044b802a7fbda754e196602bd11a57bb0e27

See more details on using hashes here.

File details

Details for the file similari_trackers_rs-0.26.10-cp38-cp38-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for similari_trackers_rs-0.26.10-cp38-cp38-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 e44598e41c5f3ffb7f08366dec2542c81695a74e5df81632f205c3816b452e82
MD5 29040aadde6fdddbfa22050385dd2ea4
BLAKE2b-256 15294973d496349fa72899cabf442f5d2a0573e6aa3c7dd9ba22608aa66800c4

See more details on using hashes here.

File details

Details for the file similari_trackers_rs-0.26.10-cp38-cp38-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for similari_trackers_rs-0.26.10-cp38-cp38-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 ab3d884dbd2ea6b5f75d21e4aef6bec9e8bc1d7bddc6059854ab124a9f62879f
MD5 9cef7333e46adcb8d06a5d4cd328c870
BLAKE2b-256 5da65ff1c302d13f622a24d48fba67c1e3e630a74d2377b8c14911d09bb3113e

See more details on using hashes here.

File details

Details for the file similari_trackers_rs-0.26.10-cp38-cp38-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for similari_trackers_rs-0.26.10-cp38-cp38-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 70a973ef9a7d810019da8784c944f3c12d246dd59f532521835f6f6feddf6a3c
MD5 72f82a7fffd0c5df2e44f21ecc51b4c8
BLAKE2b-256 2764de7c32d65b43fefe625dc5045bd8c9b22543053b8f13b74b47db78584e85

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page