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.8.tar.gz (171.7 kB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

similari_trackers_rs-0.26.8-pp310-pypy310_pp73-manylinux_2_28_x86_64.whl (1.7 MB view details)

Uploaded PyPymanylinux: glibc 2.28+ x86-64

similari_trackers_rs-0.26.8-pp310-pypy310_pp73-manylinux_2_28_aarch64.whl (1.7 MB view details)

Uploaded PyPymanylinux: glibc 2.28+ ARM64

similari_trackers_rs-0.26.8-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl (1.7 MB view details)

Uploaded PyPymanylinux: glibc 2.28+ x86-64

similari_trackers_rs-0.26.8-pp39-pypy39_pp73-manylinux_2_28_aarch64.whl (1.7 MB view details)

Uploaded PyPymanylinux: glibc 2.28+ ARM64

similari_trackers_rs-0.26.8-pp38-pypy38_pp73-manylinux_2_28_x86_64.whl (1.7 MB view details)

Uploaded PyPymanylinux: glibc 2.28+ x86-64

similari_trackers_rs-0.26.8-pp38-pypy38_pp73-manylinux_2_28_aarch64.whl (1.7 MB view details)

Uploaded PyPymanylinux: glibc 2.28+ ARM64

similari_trackers_rs-0.26.8-cp312-none-win_amd64.whl (614.8 kB view details)

Uploaded CPython 3.12Windows x86-64

similari_trackers_rs-0.26.8-cp312-cp312-manylinux_2_28_x86_64.whl (1.7 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.28+ x86-64

similari_trackers_rs-0.26.8-cp312-cp312-manylinux_2_28_aarch64.whl (1.7 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.28+ ARM64

similari_trackers_rs-0.26.8-cp312-cp312-macosx_11_0_arm64.whl (762.4 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

similari_trackers_rs-0.26.8-cp312-cp312-macosx_10_12_x86_64.whl (785.1 kB view details)

Uploaded CPython 3.12macOS 10.12+ x86-64

similari_trackers_rs-0.26.8-cp311-none-win_amd64.whl (614.9 kB view details)

Uploaded CPython 3.11Windows x86-64

similari_trackers_rs-0.26.8-cp311-cp311-manylinux_2_28_x86_64.whl (1.7 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.28+ x86-64

similari_trackers_rs-0.26.8-cp311-cp311-manylinux_2_28_aarch64.whl (1.7 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.28+ ARM64

similari_trackers_rs-0.26.8-cp311-cp311-macosx_11_0_arm64.whl (763.7 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

similari_trackers_rs-0.26.8-cp311-cp311-macosx_10_12_x86_64.whl (788.5 kB view details)

Uploaded CPython 3.11macOS 10.12+ x86-64

similari_trackers_rs-0.26.8-cp310-none-win_amd64.whl (615.5 kB view details)

Uploaded CPython 3.10Windows x86-64

similari_trackers_rs-0.26.8-cp310-cp310-manylinux_2_28_x86_64.whl (1.7 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.28+ x86-64

similari_trackers_rs-0.26.8-cp310-cp310-manylinux_2_28_aarch64.whl (1.7 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.28+ ARM64

similari_trackers_rs-0.26.8-cp310-cp310-macosx_11_0_arm64.whl (763.8 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

similari_trackers_rs-0.26.8-cp310-cp310-macosx_10_12_x86_64.whl (789.9 kB view details)

Uploaded CPython 3.10macOS 10.12+ x86-64

similari_trackers_rs-0.26.8-cp39-none-win_amd64.whl (615.6 kB view details)

Uploaded CPython 3.9Windows x86-64

similari_trackers_rs-0.26.8-cp39-cp39-manylinux_2_28_x86_64.whl (1.7 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.28+ x86-64

similari_trackers_rs-0.26.8-cp39-cp39-manylinux_2_28_aarch64.whl (1.7 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.28+ ARM64

similari_trackers_rs-0.26.8-cp39-cp39-macosx_11_0_arm64.whl (764.8 kB view details)

Uploaded CPython 3.9macOS 11.0+ ARM64

similari_trackers_rs-0.26.8-cp39-cp39-macosx_10_12_x86_64.whl (785.3 kB view details)

Uploaded CPython 3.9macOS 10.12+ x86-64

similari_trackers_rs-0.26.8-cp38-none-win_amd64.whl (615.8 kB view details)

Uploaded CPython 3.8Windows x86-64

similari_trackers_rs-0.26.8-cp38-cp38-manylinux_2_28_x86_64.whl (1.7 MB view details)

Uploaded CPython 3.8manylinux: glibc 2.28+ x86-64

similari_trackers_rs-0.26.8-cp38-cp38-manylinux_2_28_aarch64.whl (1.7 MB view details)

Uploaded CPython 3.8manylinux: glibc 2.28+ ARM64

similari_trackers_rs-0.26.8-cp38-cp38-macosx_11_0_arm64.whl (764.3 kB view details)

Uploaded CPython 3.8macOS 11.0+ ARM64

similari_trackers_rs-0.26.8-cp38-cp38-macosx_10_12_x86_64.whl (789.7 kB view details)

Uploaded CPython 3.8macOS 10.12+ x86-64

File details

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

File metadata

  • Download URL: similari_trackers_rs-0.26.8.tar.gz
  • Upload date:
  • Size: 171.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: maturin/0.15.3

File hashes

Hashes for similari_trackers_rs-0.26.8.tar.gz
Algorithm Hash digest
SHA256 2d06539103f439a4af53e32444230f9a65cf6862cc5253e3becd936410cbaaa2
MD5 d4df792eec7174df9aced0b429120043
BLAKE2b-256 2b7dfaad9a1147f41fbdda593ff21a9dc66ae1a2bbcbb91d63a5c0d471c33294

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for similari_trackers_rs-0.26.8-pp310-pypy310_pp73-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 d75b29d45326d5c27000480978b91fade5f6a792c3e1a713d700fa3f112fee03
MD5 fcc7539176ec79274b8ea3e5951180e3
BLAKE2b-256 25f6f3e6e2f5719e1f0f050e3b22fcea4e77b50937205301fdc7b59cf3debe35

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for similari_trackers_rs-0.26.8-pp310-pypy310_pp73-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 8d7e9c1f8db03849392a7b516fff0e1674ef83c22581b44c141f120694e0fde5
MD5 bd180bc587c2d0aeb955651f903df8e9
BLAKE2b-256 418a94e2bb9d08a178ab8979b48cf690308df9151eaf5b85355df8d8b38d7757

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for similari_trackers_rs-0.26.8-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 e5dd43e7ff52facda029db95908214c8e89805c5129cd2eb3ba90fa8bb07d64d
MD5 809f759ff36ec9869e9e7fcacf001806
BLAKE2b-256 fd2ff76489f9dc7a3af465f05abc4aecc9982f8b1228587b4921f70c1183fdc2

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for similari_trackers_rs-0.26.8-pp39-pypy39_pp73-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 ff39bfd9900557ad220b408ab521202d9272f8184e81562cc79b8ecb4e61b5b3
MD5 1ed02f3782f91f6a742927c901cf0e52
BLAKE2b-256 78a3e68b742653385d32594d78b02a61b25e7ba5a64bd285a23d988e56950d27

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for similari_trackers_rs-0.26.8-pp38-pypy38_pp73-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 cf9b81379a256f59ee48a2120296819b06ec9c3c10a51ef8cd58d1ef348b056e
MD5 f677fefd8675fbfe31896d93ec65c8d8
BLAKE2b-256 6dd1eadee3e7700ea7079620073d0b22462df914ff90b7b89a73579748afc91f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for similari_trackers_rs-0.26.8-pp38-pypy38_pp73-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 32551d19556bae3d4d31cc2e8dbc4654bc98b4acba0423bd041ac0b10aca33b8
MD5 483730f05ce86a1baacc1d425ec0ee8e
BLAKE2b-256 54aa4f38d0ab1049b65d3c1d2af11ddd68dc195b71f0d3fe5efe1ca31225d614

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for similari_trackers_rs-0.26.8-cp312-none-win_amd64.whl
Algorithm Hash digest
SHA256 67ae1b76da227113582f3aa7f823cb60ba53534c40dc98c5e2502a3e23f230aa
MD5 a2b9f64eab9fe711ed3e3c89c4df38fb
BLAKE2b-256 365afed90baa431eabdeaa5ff2598cf098e19137964804486a9934f1809a538f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for similari_trackers_rs-0.26.8-cp312-cp312-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 b57aca1cea796d9c7cc87e49c3d88015d5bb834aaa4ddf20f0aa6ee61f4663b5
MD5 438c7f54e8e5c175840043c2037b05db
BLAKE2b-256 1a8d3b702cb6d164f9d0203e720f3f007bc7558b32114156ef15bc2e2fc74ec6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for similari_trackers_rs-0.26.8-cp312-cp312-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 e325c49819af3df5a83048504e032500016abaaf23ed036f114062fe1cd4f97f
MD5 e6e21751290da198b5c60624115fe93b
BLAKE2b-256 effb7587157c6f3098f2c96a950a034cce7e63d82035d7e9a16bd17f24470678

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for similari_trackers_rs-0.26.8-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 182528cf329108dccefc6682f8d852f1e57edd83a197287ea4f81fcc7c3fdef0
MD5 0681d1d9d53d90957c53a42877c1e975
BLAKE2b-256 7d4a3fd93c627940f70545d7e410341cfd13b9cc913b2fda161a1a1e5f10890a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for similari_trackers_rs-0.26.8-cp312-cp312-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 2e11531e09628cf774532491864ea3f3813b7f24671e827a0e3f7b449871c0ac
MD5 72270a146c6ac979f72ab7cfdf7e812e
BLAKE2b-256 a7b1ae9edcc8d874327ec4e011dac9849b42787b6c0d54374ae2cb9bcc6d5fe9

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for similari_trackers_rs-0.26.8-cp311-none-win_amd64.whl
Algorithm Hash digest
SHA256 3d0bb322d39af3fbc8543c3fb1652e0e4100dfb1054115a177c83b0bb10dd367
MD5 3521033dc8d19993745c4ce2f4b1e25e
BLAKE2b-256 20e6533e1d5b1ac00ddfa52723c521a472a53ecf72348bf1d69fabaa639769bd

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for similari_trackers_rs-0.26.8-cp311-cp311-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 fcf37b9fd480f65146e4477fa7a754f84e991f0f7f42a891e9926a48a072f547
MD5 5119d2a74a842fc8b6dc37d1ea1b6e80
BLAKE2b-256 95ef59cd3c4c23f4474014954d35644de95e46929f1cb10527e163d91d510236

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for similari_trackers_rs-0.26.8-cp311-cp311-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 592831ef3394e389be71623ddd8e445268b089d0cf28130d15cae377176b612a
MD5 d116835e90da8997edc67cc334fc3c4a
BLAKE2b-256 96a510eaecd3be0d7180a4361b24e190c5614af95222de09cee430e249f77d10

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for similari_trackers_rs-0.26.8-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 1f19096234068503706d6484eb74366e41a26ac42177b973ee29da548ff50a68
MD5 a4a11cbc379bad3a7cddf5314804b60b
BLAKE2b-256 818ab9e5176cc44104b93aa3e20bfaac94ef9b8b774fb3145fc8eb0805a9d9bb

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for similari_trackers_rs-0.26.8-cp311-cp311-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 2b3f9251bc4617da98a446c5f4d9b7d1f9229cfe32b360bafb218b7d6bcb2fa4
MD5 9445af00f2a9786ab99b52e3309c0cbd
BLAKE2b-256 72ae0d5cdc41eab7bc2e61a852928c9c041d3184e5347043866b2e2a6df9668f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for similari_trackers_rs-0.26.8-cp310-none-win_amd64.whl
Algorithm Hash digest
SHA256 5924a1d973f53e46b7017d5972440551021c6102fd26f90287a95b9b04c645f7
MD5 d2f3be6d3326462abff74463bea2bdc9
BLAKE2b-256 720b25157aec5bf735ea4a16ac11d7bf50e2e158d881cc854f500b1b09aa3b53

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for similari_trackers_rs-0.26.8-cp310-cp310-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 9f6cf699e7e12742e1f0664bed8f81f42fff6340a744b490ad1716acc4fca1d0
MD5 e48dc90706a181f055543d6e507ba3b5
BLAKE2b-256 ab9679ada3cea904e4f346d2dac24b7b9a98c5614567d5e8d8597f5b81e73515

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for similari_trackers_rs-0.26.8-cp310-cp310-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 b0567578189a681bae4d192c5ad1d2936b1c7f3a2568de45d27c48d41846e5ab
MD5 bd9cd9763c87bedc25e498ad089d1d86
BLAKE2b-256 7c85afd042c914e9a715136136279c0db4bfaf6ca5f709d34d45361072d5ec67

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for similari_trackers_rs-0.26.8-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 18323da3b497826c92ce75a4010a4ae9120d71d031ae17e131d2b147aea02db4
MD5 25d022ddd9b50cff27813c5241ac5c56
BLAKE2b-256 abb5a84c863a5180c8e66b7533e97f8eef5e8e71100fccf831ab7dc3c0ff3ce4

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for similari_trackers_rs-0.26.8-cp310-cp310-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 9d506fd4403888de2f6224185be73ccee0884a3fe0bdf89a22fb5819132919db
MD5 ee7c0c17391c67b25b3fce6a07ee7841
BLAKE2b-256 002bcc795cb56c9949ac2a14b98f63375365da97c35e416c3d0991b4511e7992

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for similari_trackers_rs-0.26.8-cp39-none-win_amd64.whl
Algorithm Hash digest
SHA256 ebee7656168135f22c75d7f5c35ebdfc93022bcc8d98f9d891b8d40a5749deab
MD5 7b86e6f3e4ecec6a9b680f41e205d6fa
BLAKE2b-256 57a44cab703beb9b830e2a03951dd99fcf95a592aecf2dac2af2720618e8e2ce

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for similari_trackers_rs-0.26.8-cp39-cp39-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 df89a76abac3158d007719242cd637888260b0e7c35fa9cc89c8203141c853f5
MD5 ba3c2681e6e4e6d86f1686ff2f7363d8
BLAKE2b-256 ed9eb010215997189c5969b6bd7f51f90aa8eded249eb669b3ecd11cb6208a12

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for similari_trackers_rs-0.26.8-cp39-cp39-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 bbd99d6ee982ba475f6eb1e2be24dbe7502ca2d98c6cc8d075bcd4fdc5f05e08
MD5 9e5bdcc519b170105c4fc7ef053d9f18
BLAKE2b-256 0a40144e83849359c5f2797c47587bf548584cfb8f1ca9c7c5046a20f729fe4c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for similari_trackers_rs-0.26.8-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 946857367b4c5a1813b1bf631afd567e89b187547a93819103561c1ba2034155
MD5 d65b40c0c419daab745fa468c8c718a2
BLAKE2b-256 f0e3925993110938cc78f89f401d92eeb20e97f89bd61e069936e1b72b29ad40

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for similari_trackers_rs-0.26.8-cp39-cp39-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 ea6139422fbd4305a6a58ea7fb45d1d95867deba26c39d74e0eb2f3056f4e6d6
MD5 0033fa989cd9ee9677a08555db262b18
BLAKE2b-256 8313a4a2ff7ce42f622b79d14fd088f9ee4c1fa4b189c555078d1582d3b14fcf

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for similari_trackers_rs-0.26.8-cp38-none-win_amd64.whl
Algorithm Hash digest
SHA256 f7022ca7b2edb4900aff8de12c5d683df51c63517610630890662ba677d20314
MD5 45a30ae9c7aed2b32da92ae2ad4a11cc
BLAKE2b-256 e5c52e01546a253bfe1cafe97f1471cefd062c087b40d9ffd8838d0b3d84cf6a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for similari_trackers_rs-0.26.8-cp38-cp38-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 28f5d6baad39f068de27df050a1ae719a49467912d73d4d5af3c11127d3d49ed
MD5 96a15e2d62f3c108c5c1d3586c615020
BLAKE2b-256 a6e5800fab5a2fcc6d110b2ff39c0475443f451979ebd6aeba96bc5eb467fd95

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for similari_trackers_rs-0.26.8-cp38-cp38-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 2e1b660ad22e4600592f04b70e247238f7b60cf9423c093fb8ae21184600286f
MD5 064017e5c7bd4ccba1c8198039d360a7
BLAKE2b-256 3760226b608e7a14602c2d8164fdf9b27ba3a154c29299a0abb5c5be6f99859d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for similari_trackers_rs-0.26.8-cp38-cp38-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 1c73ddf1e3a8e8a0b43332839501175011ae3945e9573eae748defb3177b9558
MD5 a4d23863c7387e30516ef7b37b552b82
BLAKE2b-256 b114155456aa4747225ac0422a9d133780a6c68241aaec4babbadfb15c11dbe5

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for similari_trackers_rs-0.26.8-cp38-cp38-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 93192a54f24b98a7e11e261dca4c027c38180bb52ca481ce677d2be931095b25
MD5 9ba6c31e59d023c2292d94e84278aebc
BLAKE2b-256 59223429016ad20167faecec2b3e6649a4958c7fc8d771736e921cffa6471d64

See more details on using hashes here.

Supported by

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