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 a complete rewrite of the original traj-dist library, focusing on performance optimization and modern language features.

Why traj-dist-rs?

  • Performance: ~82x faster than Python implementation and ~3x 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 < 1e-8 error margin

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
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

Distance Types

  • Euclidean - 2D Euclidean distance
  • Spherical - Haversine distance for geographic coordinates

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
  • Metric API - Type-safe configuration with factory methods

Additional Features

  • Matrix return for DP-based algorithms (DTW, LCSS, EDR, ERP, Discret Frechet)
  • 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) supported
  • 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")

# 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).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 ~82x faster
Rust vs Cython ~3x faster

By Distance Type

Euclidean Distance:

  • Rust vs Python: ~388x faster (range: 169x - 612x)
  • Rust vs Cython: ~9.7x faster (range: 6.2x - 13.7x)

Spherical Distance:

  • Rust vs Python: ~87x faster (range: 47x - 194x)
  • Rust vs Cython: ~3.5x faster (range: 1.8x - 8.6x)

Batch Computation Performance

pdist (DTW, 5 trajectories, varying lengths):

Trajectory Length Rust Seq vs traj-dist Rust Par vs traj-dist
10 points 8.02x 0.14x (parallel overhead)
100 points 15.55x 10.52x
1000 points 15.76x 83.41x

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

Trajectory Length Rust Seq vs traj-dist Rust Par vs traj-dist
10 points 15.85x 1.00x (parallel overhead)
100 points 15.21x 15.15x
1000 points 15.20x 60.97x

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.0b4.tar.gz (2.9 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.0b4-cp313-cp313-win_amd64.whl (323.5 kB view details)

Uploaded CPython 3.13Windows x86-64

traj_dist_rs-1.0.0b4-cp313-cp313-manylinux_2_28_x86_64.whl (506.6 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.28+ x86-64

traj_dist_rs-1.0.0b4-cp313-cp313-manylinux_2_28_aarch64.whl (486.8 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.28+ ARM64

traj_dist_rs-1.0.0b4-cp313-cp313-macosx_11_0_x86_64.whl (455.0 kB view details)

Uploaded CPython 3.13macOS 11.0+ x86-64

traj_dist_rs-1.0.0b4-cp313-cp313-macosx_11_0_arm64.whl (442.0 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

traj_dist_rs-1.0.0b4-cp312-cp312-win_amd64.whl (323.9 kB view details)

Uploaded CPython 3.12Windows x86-64

traj_dist_rs-1.0.0b4-cp312-cp312-manylinux_2_28_x86_64.whl (507.6 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.28+ x86-64

traj_dist_rs-1.0.0b4-cp312-cp312-manylinux_2_28_aarch64.whl (487.0 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.28+ ARM64

traj_dist_rs-1.0.0b4-cp312-cp312-macosx_11_0_x86_64.whl (455.1 kB view details)

Uploaded CPython 3.12macOS 11.0+ x86-64

traj_dist_rs-1.0.0b4-cp312-cp312-macosx_11_0_arm64.whl (442.2 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

traj_dist_rs-1.0.0b4-cp311-cp311-win_amd64.whl (325.7 kB view details)

Uploaded CPython 3.11Windows x86-64

traj_dist_rs-1.0.0b4-cp311-cp311-manylinux_2_28_x86_64.whl (505.1 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.28+ x86-64

traj_dist_rs-1.0.0b4-cp311-cp311-manylinux_2_28_aarch64.whl (489.8 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.28+ ARM64

traj_dist_rs-1.0.0b4-cp311-cp311-macosx_11_0_x86_64.whl (455.9 kB view details)

Uploaded CPython 3.11macOS 11.0+ x86-64

traj_dist_rs-1.0.0b4-cp311-cp311-macosx_11_0_arm64.whl (440.2 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

traj_dist_rs-1.0.0b4-cp310-cp310-win_amd64.whl (323.9 kB view details)

Uploaded CPython 3.10Windows x86-64

traj_dist_rs-1.0.0b4-cp310-cp310-manylinux_2_28_x86_64.whl (504.1 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.28+ x86-64

traj_dist_rs-1.0.0b4-cp310-cp310-manylinux_2_28_aarch64.whl (490.3 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.28+ ARM64

traj_dist_rs-1.0.0b4-cp310-cp310-macosx_11_0_x86_64.whl (457.8 kB view details)

Uploaded CPython 3.10macOS 11.0+ x86-64

traj_dist_rs-1.0.0b4-cp310-cp310-macosx_11_0_arm64.whl (442.3 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

File details

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

File metadata

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

File hashes

Hashes for traj_dist_rs-1.0.0b4.tar.gz
Algorithm Hash digest
SHA256 03a79e13de36561145a15cb130e893f54654d8d48660014cc3c9e5819261e37d
MD5 66ec101aff3f2b76307e8160c3d0665d
BLAKE2b-256 874e6171577447de0b39280fb6575c0c4ea6bdb40bc6a65d395799a4c26f639d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for traj_dist_rs-1.0.0b4-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 f6793e5372728b17c27c56ae1cd670da0fd501a2b0d6635ad68820743755b1af
MD5 161c74791b370e5d2bae184dd2481fde
BLAKE2b-256 39aca7736e5671ce4cb63b2e875a974474b481c951d60c34cd0836ece6d973f6

See more details on using hashes here.

File details

Details for the file traj_dist_rs-1.0.0b4-cp313-cp313-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for traj_dist_rs-1.0.0b4-cp313-cp313-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 0d8cafaea772a38e06e0cd1cd4fdf1b0a39ec761770269f93d40e2c3992e6a98
MD5 078ca6967c73a25a1505f4da47fe52e0
BLAKE2b-256 fa03b02e547effce096b10a012da74514ed6973a3779cb722db0377cd39d6e14

See more details on using hashes here.

File details

Details for the file traj_dist_rs-1.0.0b4-cp313-cp313-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for traj_dist_rs-1.0.0b4-cp313-cp313-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 6f304e8a277fc57b3d5319184421e48ef855e273c0d99c46afd09af6944f1bd2
MD5 0808be6b283feec73e0c7bb2ade1170e
BLAKE2b-256 edc5f0b84d745d2d9a9439449239fdc1afe344f9b1a41f1e0bd1d21125c8218e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for traj_dist_rs-1.0.0b4-cp313-cp313-macosx_11_0_x86_64.whl
Algorithm Hash digest
SHA256 ae679cfada32b02cd83e28de3518e1cb5ec0c381330bfa1de0d0e74b634bbc45
MD5 a7b19d4bc7aed98b3c7bbc0986db3b47
BLAKE2b-256 f513b315481a8299d98aef625709c8984993606204311727c9ee5bd947bea0e3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for traj_dist_rs-1.0.0b4-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 e028967c8abe05940bcc97ba36c1b39265135059867daeca883b2e1665749b0c
MD5 6fa8007dca9110bc8a02b753f1ff273c
BLAKE2b-256 3c8c51589028b0799f0191819163c562a88f87527ab81c2daeb183ca8101afd0

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for traj_dist_rs-1.0.0b4-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 f023fb297f6148945258abce4d795b5afce89cc38967699f1504ca24b8afebc6
MD5 022633fc2f19ac69ca392667412a7516
BLAKE2b-256 3d94a4dbd0b303547242df9d6e423430a5840b725c6b524f41b8d2566c82eeff

See more details on using hashes here.

File details

Details for the file traj_dist_rs-1.0.0b4-cp312-cp312-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for traj_dist_rs-1.0.0b4-cp312-cp312-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 20806b3df0018cad322dc0c66b6e9627fd99550290074e956056cdb771fb20f1
MD5 03cee812c43a4d499a411fc9c267fc8c
BLAKE2b-256 9a9d7e1cedd35168d7724572f351aa68157e29237083019127d2f86734fe1705

See more details on using hashes here.

File details

Details for the file traj_dist_rs-1.0.0b4-cp312-cp312-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for traj_dist_rs-1.0.0b4-cp312-cp312-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 7344ac1403001f4170c716b0a77149894422cc9207aae31903e99c1cc5eb2426
MD5 d96c1b709adf597a0463ecb9e2663e3e
BLAKE2b-256 ab08f938483dfdf18fa29d4dc05450c72f75765f359a102de0b22ea42e714f73

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for traj_dist_rs-1.0.0b4-cp312-cp312-macosx_11_0_x86_64.whl
Algorithm Hash digest
SHA256 b495b9677f9fdc2fcadc1e6048c06300c6054926ee0f2af63b698eaffda681b1
MD5 93b6e65fe4ed0f835ab6f8c80a0dd9ac
BLAKE2b-256 406f260c82665ccc33b774f1308711ff62988759819e3be00fef52bfbe8cce03

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for traj_dist_rs-1.0.0b4-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 eb21fad9186fe7b8700deefd629a4da5bfac5d2c87981c3bb56ebb9425fe6f82
MD5 2a9df59cde34ac649cdcfbb5fc4a829e
BLAKE2b-256 d9295f24adc2d4306b62b1de95adf68470b513fbfa2185182ef4bd1c1114d597

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for traj_dist_rs-1.0.0b4-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 fb73aacbd8d6eb9b34a82cfa53ac1c0f9e445105d2a32623a6d697d2977c915e
MD5 29f5475c862819195e89687f72f4982e
BLAKE2b-256 eb099441b11d45568d1b8735caeb2ab78fa3cbf90d8e626a64c3b55c4b045440

See more details on using hashes here.

File details

Details for the file traj_dist_rs-1.0.0b4-cp311-cp311-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for traj_dist_rs-1.0.0b4-cp311-cp311-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 99cc1bd266e38156ae3d8d153dd11af1aa2136a9bf95070a9bffb8a4d7cbb782
MD5 41436793f3e74c0aa0591cc9817ced77
BLAKE2b-256 b6638a55814901363f014af007d502ace0bd0e0dee4c70b01dc8feedb435f584

See more details on using hashes here.

File details

Details for the file traj_dist_rs-1.0.0b4-cp311-cp311-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for traj_dist_rs-1.0.0b4-cp311-cp311-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 51009b1bdd89f5323d993aa7b60a0580214a898bab0ff7a557a874f97e06998b
MD5 f39e76980e148e2ce25ef800cbb336cc
BLAKE2b-256 f5772b7177b94693aefca254f0334fda76b47f6e47681a4f730f11964052525c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for traj_dist_rs-1.0.0b4-cp311-cp311-macosx_11_0_x86_64.whl
Algorithm Hash digest
SHA256 d0e1865a697fb9440322685e5cb4066d95b80c5822df1ab2a8b0bb7fc57c7292
MD5 5e0108a0422d5b58ca87c4b03f7ea195
BLAKE2b-256 643014f47e9d332b86b18286cc2b201f30fe9467cc29889f1d5860df5192fc0d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for traj_dist_rs-1.0.0b4-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 9dd260246a765cc3cc90e4d170f11521bf35b5c4ffd89e5ff7872f2a7729225a
MD5 a8c16ec335e160fbc6428b5b9bcb200c
BLAKE2b-256 106689ab98749ac364c8d546f45d30eff3049bd41db96d2d53603fd598dc0e55

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for traj_dist_rs-1.0.0b4-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 439ca860218b1b31d830a0ad0dc0fbf8396f6b89271fc54b86ef0601679ae6ab
MD5 8e4c7955ee79346b8a6a52eaa5667a2e
BLAKE2b-256 62de5a899ad41ea9b545aed3597d4c8536a3e481c594808cb5fe7721ae5c9145

See more details on using hashes here.

File details

Details for the file traj_dist_rs-1.0.0b4-cp310-cp310-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for traj_dist_rs-1.0.0b4-cp310-cp310-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 75e5b073db081cf46447c7a279a647945bf26ada23a742547d9411cd0bbf65cb
MD5 973335f49cabed330ca82bd16b201414
BLAKE2b-256 5d67287259a5dfe632b69f025f22aa64dec93e78973652eecfdeb15b3599fbde

See more details on using hashes here.

File details

Details for the file traj_dist_rs-1.0.0b4-cp310-cp310-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for traj_dist_rs-1.0.0b4-cp310-cp310-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 b0e0734b8bf3f2b6389340b6d39ef1c09274bde9dac371a858e65c736a734639
MD5 cdabfb249dc26cfe984b5e937e52cc80
BLAKE2b-256 13eda10bd814b477e419e183558ae08e819c345da3bdcd2281625736d6c03d7a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for traj_dist_rs-1.0.0b4-cp310-cp310-macosx_11_0_x86_64.whl
Algorithm Hash digest
SHA256 3f99bd7b034192bb924bc726b34ea6e66421e76ede7db8833aa40db75f63c7a3
MD5 7afe5cc5f3f6e55e4c38d433efdb8897
BLAKE2b-256 00525d0d5d960910d1c3cb41b87b02853f624d3b3c8b76230607960dce281804

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for traj_dist_rs-1.0.0b4-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 de4d44f5d5611e1ff727541b754fef0f889b62efffad1c21370f687ec14c46e4
MD5 be0b25c4a7cef6516cb06f38f0eb6fcb
BLAKE2b-256 ffac8cec2c119ae32ca85b89af88b04f7d486c27ef5afe8f4419eb9a3d940cfa

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