Skip to main content

High-performance trajectory distance & similarity measures in Rust with Python bindings

Project description

traj-dist-rs

High-performance trajectory distance & similarity measures in Rust and Python.

A high-performance Rust implementation of trajectory distance algorithms with Python bindings, offering significant speed improvements over the original traj-dist library.

License: MIT Python Version Rust Version

About

traj-dist-rs is a high-performance trajectory distance calculation library written in Rust, providing both native Rust APIs and Python bindings via PyO3. It is based on the original traj-dist library with additional algorithms (e.g., EDwP), focusing on performance optimization and modern language features.

Why traj-dist-rs?

  • Performance: ~220x faster than traj-dist's Python implementation and ~6.5x faster than Cython implementation on average
  • Batch Computation: Native pdist and cdist functions with parallel support up to 130x faster than traj-dist
  • Zero Dependencies: Only requires numpy >= 1.21 - no heavy dependencies like polars, pyarrow, pandas, or shapely
  • Safety: Rust's memory safety guarantees eliminate common runtime errors
  • Cross-platform: Supports Linux, macOS, and Windows with native binaries
  • Dual API: Use it from Python or Rust with minimal overhead
  • Accuracy: All algorithms verified against original implementation with < 1.5e-8 error margin

Performance Overview

traj-dist-rs benchmark speedup

Median benchmark summary:

  • ~231x faster than traj-dist (Python) on average
  • ~15.3x faster than traj-dist (Cython) on average
  • Parallel batch pdist / cdist reaches up to ~61.1x speedup on large inputs

See performance.md for the full benchmark report and additional plots.

Features

Supported Distance Algorithms

Algorithm Full Name Best For
SSPD Symmetric Segment-Path Distance General similarity, noise tolerance
DTW Dynamic Time Warping Similarity with time warping, flexible alignment
Frechet Fréchet Distance (Continuous) Exact geometric similarity, considers all curve points
Discret Frechet Discrete Fréchet Distance Geometric similarity, path-based matching
Hausdorff Hausdorff Distance Maximum distance, outlier-sensitive similarity
LCSS Longest Common Subsequence Robust similarity with noise tolerance
EDR Edit Distance on Real sequence Similarity with noise and outlier tolerance
ERP Edit distance with Real Penalty Robust similarity with gap handling
EDwP Edit Distance with Projections Inconsistent sampling rates, projection-based matching

Distance Types

  • Euclidean - 2D Euclidean distance (all algorithms)
  • Spherical - Haversine distance for geographic coordinates (all algorithms except Frechet, Discret Frechet, and EDwP)

Batch Computation

  • pdist - Pairwise distance matrix for trajectory collections (compressed format)
  • cdist - Cross-distance matrix between two trajectory collections
  • Parallel processing - Automatic parallelization using Rayon for large datasets
  • Progress display - Built-in progress bar via show_progress=True (powered by indicatif, rendered to stderr)
  • Metric API - Type-safe configuration with factory methods

Additional Features

  • Matrix return for DP-based algorithms (DTW, LCSS, EDR, ERP, Discret Frechet, EDwP)
  • Precomputed distance matrix support for efficient batch computations
  • Zero-copy NumPy array support for optimal performance
  • Pickle serialization for DpResult objects (compatible with joblib)
  • Comprehensive error handling for invalid inputs
  • Full Python type hints for better IDE support

Keywords / Search Terms

Common search terms related to this library:

  • Core concepts: trajectory similarity, trajectory distance, similarity measures, trajectory analysis
  • Algorithms: DTW, LCSS, EDR, ERP, Fréchet distance, Hausdorff distance, SSPD
  • Applications: trajectory clustering, trajectory similarity search, nearest neighbor retrieval, mobility data analysis, GPS trace analysis
  • Domains: time series similarity, spatiotemporal data, movement pattern mining, anomaly detection

Migration from traj-dist

If you used the original traj-dist library for trajectory similarity measurement, this library is compatible and offers significant performance improvements:

  • Algorithm compatibility: Core algorithms (SSPD, DTW, Hausdorff, LCSS, EDR, ERP, Frechet, Discret Frechet) supported, plus EDwP (not in original traj-dist)
  • Performance: 3-10x faster than Cython implementation

Quick Start

Python

import numpy as np
import traj_dist_rs

# Define trajectories as list of [x, y] coordinates or numpy arrays
traj1 = [[0.0, 0.0], [1.0, 1.0], [2.0, 2.0]]
traj2 = [[0.1, 0.1], [1.1, 1.1], [2.1, 2.1]]

# Calculate SSPD distance
distance = traj_dist_rs.sspd(traj1, traj2, dist_type="euclidean")
print(f"SSPD distance: {distance}")

# Calculate DTW distance (returns DpResult with distance and optional matrix)
result = traj_dist_rs.dtw(traj1, traj2, dist_type="euclidean", use_full_matrix=False)
print(f"DTW distance: {result.distance}")

# Calculate Hausdorff distance
distance = traj_dist_rs.hausdorff(traj1, traj2, dist_type="spherical")
print(f"Hausdorff distance: {distance}")

# Batch computation with pdist (pairwise distances)
trajectories = [np.array([[0.0, 0.0], [1.0, 1.0]]) for _ in range(10)]
metric = traj_dist_rs.Metric.sspd(type_d="euclidean")
distances = traj_dist_rs.pdist(trajectories, metric=metric, parallel=True)
print(f"Computed {len(distances)} pairwise distances")

# With progress bar (rendered to stderr)
distances = traj_dist_rs.pdist(trajectories, metric=metric, parallel=True, show_progress=True)

# Cross-distance computation with cdist
dist_matrix = traj_dist_rs.cdist(trajectories[:5], trajectories[5:], metric=metric)
print(f"Distance matrix shape: {dist_matrix.shape}")

Rust

use traj_dist_rs::distance::sspd::sspd;
use traj_dist_rs::distance::dtw::dtw;
use traj_dist_rs::distance::base::TrajectoryCalculator;
use traj_dist_rs::distance::distance_type::DistanceType;
use traj_dist_rs::distance::batch::{pdist, Metric, DistanceAlgorithm};

fn main() {
    let traj1 = vec![[0.0, 0.0], [1.0, 1.0], [2.0, 2.0]];
    let traj2 = vec![[0.1, 0.1], [1.1, 1.1], [2.1, 2.1]];

    // Calculate SSPD distance
    let dist = sspd(&traj1, &traj2, DistanceType::Euclidean);
    println!("SSPD distance: {}", dist);

    // Calculate DTW distance
    let calculator = TrajectoryCalculator::new(&traj1, &traj2, DistanceType::Euclidean);
    let result = dtw(&calculator, false);
    println!("DTW distance: {}", result.distance);

    // Batch computation with pdist
    let trajectories = vec![
        vec![[0.0, 0.0], [1.0, 1.0]],
        vec![[0.0, 1.0], [1.0, 0.0]],
        vec![[0.5, 0.5], [1.5, 1.5]],
    ];
    let metric = Metric::new(DistanceAlgorithm::SSPD, DistanceType::Euclidean);
    let distances = pdist(&trajectories, &metric, true, true).unwrap();
    println!("Computed {} pairwise distances", distances.len());
}

Installation

From PyPI (Python)

pip install traj-dist-rs

Minimal Dependencies: traj-dist-rs only requires numpy >= 1.21 to function. This makes it extremely lightweight and easy to install compared to alternatives that depend on pandas, shapely, or other heavy libraries.

Requirements

  • Python: 3.10, 3.11, 3.12, or 3.13
  • NumPy: >= 1.21 (the only runtime dependency)
  • Platform: Linux, macOS, or Windows

From crates.io (Python)

cargo add traj-dist-rs --features parallel

Installation Options

Basic Installation (minimal dependencies):

pip install traj-dist-rs

Installation with Test Dependencies (for development):

pip install traj-dist-rs[test]

From Source (requires Rust toolchain):

Prerequisites:

  • Rust 1.85 or later
  • uv

Build and install:

# Clone the repository
git clone https://github.com/Davidham3/traj-dist-rs.git
cd traj-dist-rs

# Compile and install via uv
uv pip install .

Rust-only build:

cargo build --release --features parallel

Performance

Compared to the original traj-dist implementation (based on median values from K=1000 trajectory pairs):

Overall Performance

Implementation Average Speedup
Rust vs Python ~220x faster
Rust vs Cython ~6.5x faster

By Distance Type

Euclidean Distance:

  • Rust vs Python: ~329x faster (range: 169x - 517x)
  • Rust vs Cython: ~8.9x faster (range: 6.3x - 12.9x)

Spherical Distance:

  • Rust vs Python: ~93x faster (range: 47x - 195x)
  • Rust vs Cython: ~3.6x faster (range: 2.3x - 6.8x)

Batch Computation Performance

pdist (DTW, 5 trajectories, varying lengths):

Trajectory Length Rust Seq vs traj-dist Rust Par vs traj-dist
10 points 9.15x 0.21x (parallel overhead)
100 points 11.58x 9.73x
1000 points 12.47x 71.24x

cdist (DTW, 5×5, varying lengths):

Trajectory Length Rust Seq vs traj-dist Rust Par vs traj-dist
10 points 10.77x 0.55x (parallel overhead)
100 points 14.45x 34.81x
1000 points 12.27x 50.36x

Real-world Example: TrajCL Data Preprocessing

  • Dataset: 7,000 trajectories (Porto dataset)
  • Task: DTW distance matrix computation
  • Performance: 31.8x faster than traj-dist baseline (2933s → 92s)

For detailed performance analysis with statistics, see performance.md.

Documentation

Testing

Run comprehensive integration tests:

bash scripts/pre_build.sh

Contributing

We welcome contributions! Please see our contributing guidelines:

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Make your changes
  4. Run tests and ensure they pass via bash scripts/pre_build.sh
  5. Commit your changes (git commit -m 'Add amazing feature')
  6. Push to the branch (git push origin feature/amazing-feature)
  7. Open a Pull Request

Development Workflow

For daily development, use the pre-build script:

bash scripts/pre_build.sh

This script will:

  • Format Rust and Python code
  • Run linting (clippy, ruff)
  • Run all tests (Rust + Python)
  • Generate Python stub files
  • Build Python bindings

Project Structure

traj-dist-rs/
├── src/
│   ├── distance/       # Distance algorithm implementations
│   ├── binding/        # Python bindings (PyO3)
│   └── lib.rs          # Library entry point
├── tests/              # Rust integration tests
├── py_tests/           # Python integration tests
├── python/             # Python package source
├── docs/               # Documentation
└── scripts/            # Build and utility scripts

License

This project is licensed under the MIT License - see the LICENSE file for details.

Acknowledgments

  • Original traj-dist library for algorithm reference
  • PyO3 for Python bindings
  • The Rust community for excellent tooling and libraries

Support

  • Issues: Report bugs and request features via GitHub Issues
  • Discussions: Join discussions about usage and development
  • Documentation: Check the docs directory for detailed guides

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

traj_dist_rs-1.0.0rc4.tar.gz (3.2 MB view details)

Uploaded Source

Built Distributions

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

traj_dist_rs-1.0.0rc4-cp313-cp313-win_amd64.whl (429.8 kB view details)

Uploaded CPython 3.13Windows x86-64

traj_dist_rs-1.0.0rc4-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (616.0 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64

traj_dist_rs-1.0.0rc4-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.whl (592.4 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ ARM64

traj_dist_rs-1.0.0rc4-cp313-cp313-macosx_11_0_x86_64.whl (557.6 kB view details)

Uploaded CPython 3.13macOS 11.0+ x86-64

traj_dist_rs-1.0.0rc4-cp313-cp313-macosx_11_0_arm64.whl (538.5 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

traj_dist_rs-1.0.0rc4-cp312-cp312-win_amd64.whl (430.5 kB view details)

Uploaded CPython 3.12Windows x86-64

traj_dist_rs-1.0.0rc4-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (616.1 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

traj_dist_rs-1.0.0rc4-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl (593.0 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ ARM64

traj_dist_rs-1.0.0rc4-cp312-cp312-macosx_11_0_x86_64.whl (557.6 kB view details)

Uploaded CPython 3.12macOS 11.0+ x86-64

traj_dist_rs-1.0.0rc4-cp312-cp312-macosx_11_0_arm64.whl (538.4 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

traj_dist_rs-1.0.0rc4-cp311-cp311-win_amd64.whl (433.3 kB view details)

Uploaded CPython 3.11Windows x86-64

traj_dist_rs-1.0.0rc4-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (619.9 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

traj_dist_rs-1.0.0rc4-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.whl (592.8 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ ARM64

traj_dist_rs-1.0.0rc4-cp311-cp311-macosx_11_0_x86_64.whl (562.0 kB view details)

Uploaded CPython 3.11macOS 11.0+ x86-64

traj_dist_rs-1.0.0rc4-cp311-cp311-macosx_11_0_arm64.whl (545.2 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

traj_dist_rs-1.0.0rc4-cp310-cp310-win_amd64.whl (432.8 kB view details)

Uploaded CPython 3.10Windows x86-64

traj_dist_rs-1.0.0rc4-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (618.7 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

traj_dist_rs-1.0.0rc4-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.whl (594.7 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ ARM64

traj_dist_rs-1.0.0rc4-cp310-cp310-macosx_11_0_x86_64.whl (561.6 kB view details)

Uploaded CPython 3.10macOS 11.0+ x86-64

traj_dist_rs-1.0.0rc4-cp310-cp310-macosx_11_0_arm64.whl (543.8 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

File details

Details for the file traj_dist_rs-1.0.0rc4.tar.gz.

File metadata

  • Download URL: traj_dist_rs-1.0.0rc4.tar.gz
  • Upload date:
  • Size: 3.2 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for traj_dist_rs-1.0.0rc4.tar.gz
Algorithm Hash digest
SHA256 1d508d4b29d357fbabf01b4895db45314f83bc0d3633b75d2b71f89262bce6bc
MD5 d97aaefbe5371d5c61514febfab72bb2
BLAKE2b-256 f8e532bd3e8c09fbf757144ecdb8705765172a7006a1ef2f61c8660e62c27643

See more details on using hashes here.

File details

Details for the file traj_dist_rs-1.0.0rc4-cp313-cp313-win_amd64.whl.

File metadata

File hashes

Hashes for traj_dist_rs-1.0.0rc4-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 65d1761e4f09f24c396c235c73488ccfba4b58a7a8dd93d560efb6c8895bf0ef
MD5 b5ec8ecfa3d96fd0f0c1921aca45bb49
BLAKE2b-256 bf670df3bbcfee0113f4a235efa6a3778b7029eeb0cfa171dcafce4e4f90e869

See more details on using hashes here.

File details

Details for the file traj_dist_rs-1.0.0rc4-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.

File metadata

File hashes

Hashes for traj_dist_rs-1.0.0rc4-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 991428b1e6bcdfcfedba6e78e130a515d0d32b122df130d27a0af44ab23ed34d
MD5 b6f36532045dfd195da622197e0b5b6a
BLAKE2b-256 cc939727982ef76d4586d6cb0d6a21ff1135cd2f6ad16001802d0a84bf5455a1

See more details on using hashes here.

File details

Details for the file traj_dist_rs-1.0.0rc4-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.whl.

File metadata

File hashes

Hashes for traj_dist_rs-1.0.0rc4-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.whl
Algorithm Hash digest
SHA256 c946514a8e34c7b2db7a5ef8118beb9141e7e8c2e7cf7f14710b93276005889a
MD5 e3fe0734d36190decafe3cac86d46bb7
BLAKE2b-256 cc85cc5a7183857f6c45e6912e0d6b1dbed7a46cf657852a23f5850f1fd48909

See more details on using hashes here.

File details

Details for the file traj_dist_rs-1.0.0rc4-cp313-cp313-macosx_11_0_x86_64.whl.

File metadata

File hashes

Hashes for traj_dist_rs-1.0.0rc4-cp313-cp313-macosx_11_0_x86_64.whl
Algorithm Hash digest
SHA256 ebaf87f8c1c2b55aedbb5e4dd571e7f0baab768d6628cc69ed5fc975a6c96b7a
MD5 66cd61549cfcdc12d34c50780aa906a5
BLAKE2b-256 3def2e950a9fa68502dafab1a67e8b43a0948eb4632f3960d66cc49aaff6fd9f

See more details on using hashes here.

File details

Details for the file traj_dist_rs-1.0.0rc4-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for traj_dist_rs-1.0.0rc4-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 13353772585a1afb44e85d622b81e719527aa759d604750f20c53c6b6223e99a
MD5 2287a5b00e0768399fdebe9277a4784b
BLAKE2b-256 0eb0925b5ed168413b742a9593db69eb97c951fee80f892c4092cbebdaaf9510

See more details on using hashes here.

File details

Details for the file traj_dist_rs-1.0.0rc4-cp312-cp312-win_amd64.whl.

File metadata

File hashes

Hashes for traj_dist_rs-1.0.0rc4-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 4e13a7b2f6c0ab8ce3fdd4e13b9f7f50f2491626a9ed034515a38814b957df63
MD5 0cd096a8f88358b46957ef1699fe8034
BLAKE2b-256 7e5acabb82fc485e01e7d908d468b8481b49fc76aaf6e3c85e53cad2fb7062f2

See more details on using hashes here.

File details

Details for the file traj_dist_rs-1.0.0rc4-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.

File metadata

File hashes

Hashes for traj_dist_rs-1.0.0rc4-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 807a626d19add0c8204879f0f9d038e44aa54fe301d24c9e71a25213eb8ec7d7
MD5 f71b19c3b72ca2931865e2a5037ee96d
BLAKE2b-256 de434e4d14fb0499d7803a810d4a0a6116f046b7f470b2d0df226da270a998a4

See more details on using hashes here.

File details

Details for the file traj_dist_rs-1.0.0rc4-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl.

File metadata

File hashes

Hashes for traj_dist_rs-1.0.0rc4-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl
Algorithm Hash digest
SHA256 7e40a175beb61f5f803ca08d3aed729cf9c83bab8431728e74ebf1b4560a3304
MD5 8869127ca2c17e362a2f28821ac940e0
BLAKE2b-256 00358dba8c8eb8ed0f37f70938c5ac5dea7018fae92f5d5e9a0d2f41505b7e9c

See more details on using hashes here.

File details

Details for the file traj_dist_rs-1.0.0rc4-cp312-cp312-macosx_11_0_x86_64.whl.

File metadata

File hashes

Hashes for traj_dist_rs-1.0.0rc4-cp312-cp312-macosx_11_0_x86_64.whl
Algorithm Hash digest
SHA256 2df6372640a0aa85d346d7cefc8bb75c9ad7e1f374d3c37bee703de49fd8a087
MD5 d4b48f9be7e323f76365bc317ef013de
BLAKE2b-256 b76c0e7959d0dfd07951d52f465719b28f6ad8dd2a8e86194170418b5556feb2

See more details on using hashes here.

File details

Details for the file traj_dist_rs-1.0.0rc4-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for traj_dist_rs-1.0.0rc4-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 1823f9ee32d15d8f7dbd5962250f049bf341afa4a81681bd6f704110f2de19e4
MD5 02e15c575bcf2365417c9459c900ffaf
BLAKE2b-256 9090c211cafa43f9623751fa1fcf88891d83863d780ff783c14619358cdec53a

See more details on using hashes here.

File details

Details for the file traj_dist_rs-1.0.0rc4-cp311-cp311-win_amd64.whl.

File metadata

File hashes

Hashes for traj_dist_rs-1.0.0rc4-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 dfbad511f9ba9f43c2b7d86c6ee826f7ca6cf29ead13b52db992fc05b6fd2ca0
MD5 f450d9297885f35af8cd8b82d9804324
BLAKE2b-256 7f6c640429b12c5afec0db698ebc7dc57c34cbad34957e241c533b8aed3ae192

See more details on using hashes here.

File details

Details for the file traj_dist_rs-1.0.0rc4-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.

File metadata

File hashes

Hashes for traj_dist_rs-1.0.0rc4-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 e53855b375522e91a2c6712d3229e9cf7ba6bfd5aab4d934cc7617de91a9b0e2
MD5 613017a969df79303991470f2450c50d
BLAKE2b-256 dbe7c4ab771e7edb43c12ca8f7ef329223dd629319595688c53d2ec587daf2bd

See more details on using hashes here.

File details

Details for the file traj_dist_rs-1.0.0rc4-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.whl.

File metadata

File hashes

Hashes for traj_dist_rs-1.0.0rc4-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.whl
Algorithm Hash digest
SHA256 e5aac10d071c4239df3a9fb9fbedeacb66f3c4d9545c6e1da899cbb75a67093d
MD5 99993d16b215abe59f496cb70aa3818e
BLAKE2b-256 79fc8d4caa5d3b1e3b3066bdeb4a7beeea343f6f1a1c521ce1f4442bba09c7ed

See more details on using hashes here.

File details

Details for the file traj_dist_rs-1.0.0rc4-cp311-cp311-macosx_11_0_x86_64.whl.

File metadata

File hashes

Hashes for traj_dist_rs-1.0.0rc4-cp311-cp311-macosx_11_0_x86_64.whl
Algorithm Hash digest
SHA256 5f1a0bbae00d11ab0739fbcca7070b99764276c2959fd1a836ed71c65c66c929
MD5 06ade1d79c02fb2b8c67de6104df13f2
BLAKE2b-256 9e1c9fef0996fbf7820c809a4b324cdbef7e550497ed77cac0f8af9326192fad

See more details on using hashes here.

File details

Details for the file traj_dist_rs-1.0.0rc4-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for traj_dist_rs-1.0.0rc4-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 1d3b08c7ad1e09c801dee2cf9ea880a65d57e6c1b5aea65b9b04116f2e2933c0
MD5 095f95474e22c3b03b5572cab5eaaf07
BLAKE2b-256 b042844592580466cad5a8699f1d9f2c8526fbb1cf71c759dd0cf9123f0355ce

See more details on using hashes here.

File details

Details for the file traj_dist_rs-1.0.0rc4-cp310-cp310-win_amd64.whl.

File metadata

File hashes

Hashes for traj_dist_rs-1.0.0rc4-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 aa2d36bf9d6fb321c829fd96f1188d3507791065ced731b4c4a26c0a922b6475
MD5 a420d3401875e91ed481155355c91c22
BLAKE2b-256 315debfd5fa858877d8ab59f132c8f387269bc2a8d5f639d1358e93d3c040973

See more details on using hashes here.

File details

Details for the file traj_dist_rs-1.0.0rc4-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.

File metadata

File hashes

Hashes for traj_dist_rs-1.0.0rc4-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 013db7046afb314f4a09c29e92139051dbdd03f77b2d6c12f974ce5aed61cb6a
MD5 9fc575c477c9f23af22416324550d3b7
BLAKE2b-256 2bb97e6ad8cf0a9c6512fff4b95f358a4bf9238e277c7b6ca0ff07674aff2c3a

See more details on using hashes here.

File details

Details for the file traj_dist_rs-1.0.0rc4-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.whl.

File metadata

File hashes

Hashes for traj_dist_rs-1.0.0rc4-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.whl
Algorithm Hash digest
SHA256 47f2b5b2c394ef89add4c8038e9624c433bf8942ea07c8c900e949f12624b7bc
MD5 c3d083a9d814885fb7837ea1e184d375
BLAKE2b-256 5f32f300c0a279290cd5e91fda5b73ca6306b6cf8e6de5e4f59d5ff62490730c

See more details on using hashes here.

File details

Details for the file traj_dist_rs-1.0.0rc4-cp310-cp310-macosx_11_0_x86_64.whl.

File metadata

File hashes

Hashes for traj_dist_rs-1.0.0rc4-cp310-cp310-macosx_11_0_x86_64.whl
Algorithm Hash digest
SHA256 4faf2159f3f82f1c720b9102e7b2c0ee48b12eb5d5333ea472d7367b08c7c4a9
MD5 d0b72d413911b96e336eb964cd8157f5
BLAKE2b-256 25d2afc4c48ab5d60dbd6cfd69cde07c9f01170006dbc3e102be4606e92109fa

See more details on using hashes here.

File details

Details for the file traj_dist_rs-1.0.0rc4-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for traj_dist_rs-1.0.0rc4-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 48722bbde32a38f1bc65b192018a70852eca2763e635b1243bb094df2448a6c4
MD5 162e563cd85b1db44ac017ce8465940f
BLAKE2b-256 98dd7278cd292b1758d475e90eda48c3df3482e3843e7a4e69f96e4aad2e8c06

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