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.0rc5.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.0rc5-cp313-cp313-win_amd64.whl (426.5 kB view details)

Uploaded CPython 3.13Windows x86-64

traj_dist_rs-1.0.0rc5-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (611.4 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64

traj_dist_rs-1.0.0rc5-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.whl (588.0 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ ARM64

traj_dist_rs-1.0.0rc5-cp313-cp313-macosx_11_0_x86_64.whl (553.2 kB view details)

Uploaded CPython 3.13macOS 11.0+ x86-64

traj_dist_rs-1.0.0rc5-cp313-cp313-macosx_11_0_arm64.whl (534.8 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

traj_dist_rs-1.0.0rc5-cp312-cp312-win_amd64.whl (427.2 kB view details)

Uploaded CPython 3.12Windows x86-64

traj_dist_rs-1.0.0rc5-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (611.6 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

traj_dist_rs-1.0.0rc5-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl (588.5 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ ARM64

traj_dist_rs-1.0.0rc5-cp312-cp312-macosx_11_0_x86_64.whl (553.4 kB view details)

Uploaded CPython 3.12macOS 11.0+ x86-64

traj_dist_rs-1.0.0rc5-cp312-cp312-macosx_11_0_arm64.whl (534.8 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

traj_dist_rs-1.0.0rc5-cp311-cp311-win_amd64.whl (424.6 kB view details)

Uploaded CPython 3.11Windows x86-64

traj_dist_rs-1.0.0rc5-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (615.8 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

traj_dist_rs-1.0.0rc5-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.0rc5-cp311-cp311-macosx_11_0_x86_64.whl (560.0 kB view details)

Uploaded CPython 3.11macOS 11.0+ x86-64

traj_dist_rs-1.0.0rc5-cp311-cp311-macosx_11_0_arm64.whl (541.0 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

traj_dist_rs-1.0.0rc5-cp310-cp310-win_amd64.whl (424.2 kB view details)

Uploaded CPython 3.10Windows x86-64

traj_dist_rs-1.0.0rc5-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (615.3 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

traj_dist_rs-1.0.0rc5-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.whl (592.2 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ ARM64

traj_dist_rs-1.0.0rc5-cp310-cp310-macosx_11_0_x86_64.whl (561.8 kB view details)

Uploaded CPython 3.10macOS 11.0+ x86-64

traj_dist_rs-1.0.0rc5-cp310-cp310-macosx_11_0_arm64.whl (540.4 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

File details

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

File metadata

  • Download URL: traj_dist_rs-1.0.0rc5.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.0rc5.tar.gz
Algorithm Hash digest
SHA256 0aa3355de445d215b27694b999bd21ecb67adb9834924929d6778dd45e453786
MD5 cdeba920e9d09a8ee537751ec3f33392
BLAKE2b-256 6092f1cf1ffd825358a3f65b432d6983090e4e150c3da89fff65b4a34d37a57b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for traj_dist_rs-1.0.0rc5-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 f102ebc5f254a88facb111988048e187fad07f4bec4b9fc5349b45d3ef96651e
MD5 c79cdc93a18f19e7a172eae3a216f531
BLAKE2b-256 b310b193f7a11db06cf0bffe8e3aa4601094a2295033ac157f3b5545d2dd02cf

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for traj_dist_rs-1.0.0rc5-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 8dbecf62b97ba9e75cb6929f73ad5310eed0196f20a545e5e672f31230d309de
MD5 1083e5b7e5a75beebe6eb218766d5b9f
BLAKE2b-256 0ca07dce9ac532d9de7f2d864aabb660cf48537f092c4a64bd3e8f6bcea3e5e3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for traj_dist_rs-1.0.0rc5-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.whl
Algorithm Hash digest
SHA256 1c65fc28493bad50200a10f244eb9e912a26aa8517e473c1765c3ed86abc204b
MD5 29c1f147a9a3212b3a0616c40a4899fb
BLAKE2b-256 a1d25226709a1ec4b607b57e5f3f2c3082990614e6538e4f3562528f9f9c5eae

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for traj_dist_rs-1.0.0rc5-cp313-cp313-macosx_11_0_x86_64.whl
Algorithm Hash digest
SHA256 e84b2e6f927ad2bf5885e81cd26927c5c7f56218437136041c2d5d7874e73aae
MD5 18cb87d02ef8f8a71ad9a2dd36646d2d
BLAKE2b-256 33d8ecb3c5106b19dcb3e2be1536b17e07689da1117eef93af4f3bfc1c2de3e3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for traj_dist_rs-1.0.0rc5-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 dbf4b0588ec39a7c94a3bd49df8aeeeab1f7e518116738ee7e7762e6f7fab284
MD5 32b1a9c2a53e499dee63ab8b29686c93
BLAKE2b-256 beb719feab770ce647a1f63bf67ee5ad3a84f10cf24977772e008fb109e8f792

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for traj_dist_rs-1.0.0rc5-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 9b9dd5549f3e56b39ebd2ef90ebd58d48c945c1edf6faeaa42f6af7ed0985272
MD5 01501de477a7ec56d8ee45c73d63187d
BLAKE2b-256 133cc1d050d65a240ee38a7e3322cec67cef4c77a7367bce0777e3512296ca15

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for traj_dist_rs-1.0.0rc5-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 7c77c9f49df27430f7bc610d06f5849168a1807aaa46ee5f5e919ba2bb1e5808
MD5 3f733414bed3cd607a5d287d43a4289c
BLAKE2b-256 0cd73066a0a92fc8b18da22386fc0e70c9eebbef73f9842cfaeda9af9d789215

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for traj_dist_rs-1.0.0rc5-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl
Algorithm Hash digest
SHA256 054d4263a55cf44082461c942456174611606402a704912ec3dfc21e1c7cdc14
MD5 f64bd28a835d245902b8ce16078a85e9
BLAKE2b-256 92011b8f7d811165678d133a6ae64e57bb517bf2ecd605a2a9b0d2a2672daea9

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for traj_dist_rs-1.0.0rc5-cp312-cp312-macosx_11_0_x86_64.whl
Algorithm Hash digest
SHA256 28968eb0f584cf4bdfe2fd9707821db20820b820b032689234268f9921d802f7
MD5 f4219846bf6cc117aa5ecd0139952f5e
BLAKE2b-256 92fabbffc5a0ccae7bb76a2f904d13d87d08017efb37c399074322aec596c56e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for traj_dist_rs-1.0.0rc5-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 9bac6d883501cac4cafdd6c20bbcaad3eb954a296445c488068251d3ba5e68d6
MD5 c59e49237a6b05677a5405442d8f4c7d
BLAKE2b-256 ddb2ce21680a180d4884332c7541b602f1bd0f5015e01f59ce0386d3b534fb81

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for traj_dist_rs-1.0.0rc5-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 a7185022ff37ff01441a95ea924b8cb3a3892ba68dc680a2838d13a8734bf82c
MD5 7759579acff7618c7ee96f8c28afe509
BLAKE2b-256 12230625ac4576083d90ab990f033ab9d14d152c59872912fcd5213df1c6a5a7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for traj_dist_rs-1.0.0rc5-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 0f42da0166d52e3e52c183bf7b75d94868f7cee9dc04f3161776d9af7dc962d1
MD5 db76efe89044108240d14e0f2dab477f
BLAKE2b-256 475df5426454f3b34863f3f7f10d699bcecfd6cfb688d018f86d6dc34995b3b0

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for traj_dist_rs-1.0.0rc5-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.whl
Algorithm Hash digest
SHA256 4798b0ac92d7ef64e5cd154e92c61c0e781280c9daa6b4d6db72f1d4be32102b
MD5 64c257dce507104dd9675fe57e19bf3a
BLAKE2b-256 5d020a121c1a7ca385a400d6019a0125d0114cffc7432c8fd67594e5d2f7224a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for traj_dist_rs-1.0.0rc5-cp311-cp311-macosx_11_0_x86_64.whl
Algorithm Hash digest
SHA256 7a7e97f6f2b4e850867537a34e561c2ab68908ea62ec3bebd3ff72d49172260f
MD5 e994630e5f3722f3efd91c8b63d472a0
BLAKE2b-256 5748a61eb757b54a53f4b5a9abc9a24518f66796a47386a5754d27b3b4ce3f4e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for traj_dist_rs-1.0.0rc5-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 abe25c5279f54b7982edd4cd104881ff5f2da9b37317849727c646443f2c4802
MD5 622656fecf5c4252bd30b07c668b1c6b
BLAKE2b-256 10df4319198cb8c7f9f607871ccb3adc7ede07693bf2bb260f3158ba7a4c410f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for traj_dist_rs-1.0.0rc5-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 43771a15c2ba66e9a3ac20cae4e9c12dd20c55171ed19139301f2193b0efb42a
MD5 78558d32ed141d7f47c5409c32603bc3
BLAKE2b-256 b6d25f593cbe2651797d5857d7d677f628b7302b57d4204d488b6103e12fcc3b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for traj_dist_rs-1.0.0rc5-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 cb56b2d4e78147fbf3379ca4b9c8f68093aa59c34c1072f6b2b97061a23146e8
MD5 42f4ba81ded6192775b5be4d7bae513b
BLAKE2b-256 3c3d657269d5b7fba53f14d643e737a1853b61985af2ddc3bcb52536d22b7028

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for traj_dist_rs-1.0.0rc5-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.whl
Algorithm Hash digest
SHA256 4909dafe2c109f674c05e5ae8a21922cfc24c886dd5914dc5860d4d79a44e0fc
MD5 3da21ada2c9fc6ee33798c648e5b2b24
BLAKE2b-256 2431ad47300987b510a516e0185efdb5db1f2f3a1a926410da2cbcde99be7d9a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for traj_dist_rs-1.0.0rc5-cp310-cp310-macosx_11_0_x86_64.whl
Algorithm Hash digest
SHA256 2be50bb1738272bd3b3562e171ac0874a3a29296bc27066f594c464fc5ffcf80
MD5 eb6290ab1933f8b0d593535f87db1bc3
BLAKE2b-256 a92ae4da4bcc92d4ebf64105e21427ea71ec516c5049ca4e263a233eebdaea6e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for traj_dist_rs-1.0.0rc5-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 3fb38d0412e580339b25810b6975887ccdcf887ffece7656305cc8d1447d9438
MD5 28a685dd2aa7a95ad4b08e31510b1b4e
BLAKE2b-256 4ae96d4955097237a6ae731126ca1b1763a32c7f0b903af277be3b1631f25416

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