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

Uploaded CPython 3.13Windows x86-64

traj_dist_rs-1.0.0rc2-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (506.2 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64

traj_dist_rs-1.0.0rc2-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.whl (484.8 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ ARM64

traj_dist_rs-1.0.0rc2-cp313-cp313-macosx_11_0_x86_64.whl (455.4 kB view details)

Uploaded CPython 3.13macOS 11.0+ x86-64

traj_dist_rs-1.0.0rc2-cp313-cp313-macosx_11_0_arm64.whl (441.9 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

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

Uploaded CPython 3.12Windows x86-64

traj_dist_rs-1.0.0rc2-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (507.2 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

traj_dist_rs-1.0.0rc2-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl (485.1 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ ARM64

traj_dist_rs-1.0.0rc2-cp312-cp312-macosx_11_0_x86_64.whl (455.6 kB view details)

Uploaded CPython 3.12macOS 11.0+ x86-64

traj_dist_rs-1.0.0rc2-cp312-cp312-macosx_11_0_arm64.whl (442.1 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

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

Uploaded CPython 3.11Windows x86-64

traj_dist_rs-1.0.0rc2-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (504.7 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

traj_dist_rs-1.0.0rc2-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.whl (487.0 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ ARM64

traj_dist_rs-1.0.0rc2-cp311-cp311-macosx_11_0_x86_64.whl (457.2 kB view details)

Uploaded CPython 3.11macOS 11.0+ x86-64

traj_dist_rs-1.0.0rc2-cp311-cp311-macosx_11_0_arm64.whl (440.1 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

traj_dist_rs-1.0.0rc2-cp310-cp310-win_amd64.whl (324.1 kB view details)

Uploaded CPython 3.10Windows x86-64

traj_dist_rs-1.0.0rc2-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (503.8 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

traj_dist_rs-1.0.0rc2-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.whl (487.2 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ ARM64

traj_dist_rs-1.0.0rc2-cp310-cp310-macosx_11_0_x86_64.whl (457.2 kB view details)

Uploaded CPython 3.10macOS 11.0+ x86-64

traj_dist_rs-1.0.0rc2-cp310-cp310-macosx_11_0_arm64.whl (442.7 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

File details

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

File metadata

  • Download URL: traj_dist_rs-1.0.0rc2.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.0rc2.tar.gz
Algorithm Hash digest
SHA256 2647ef4889a4f4eea495b5658b98f2f1ac8e2f0551dc1141ff97268f5e624262
MD5 2f67b63229bdbef759c55757a68ad6ab
BLAKE2b-256 2e4272950aef9d6f0ebe6106bb5ec801877c0586ea948894e6d52d8d3a87f441

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for traj_dist_rs-1.0.0rc2-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 8774fd5c1b62c221fdd167a6180eb15683785f81c380fc5f075ec7ba945a2e81
MD5 c1a4173dc7cf7117f36fad23c3beb75e
BLAKE2b-256 95a27d07ad71b31c1bd6d2bd718724326e91de87963d5c70e0464a0198b4e23c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for traj_dist_rs-1.0.0rc2-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 828401b07d5cac1c20a44202ad1401553daf408b7cf706f689978206b3912742
MD5 52e663797d321ce893e1ea50d02b4490
BLAKE2b-256 f70de41bf5f760ef8379f9c56e4d8b3ecf492da89e4b9dadcc723183d37b7c72

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for traj_dist_rs-1.0.0rc2-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.whl
Algorithm Hash digest
SHA256 39381573b3ad908a7515ccd734a28a0011574fc6e3a9c112beb9041a596e4245
MD5 ca63b465bd24955fe42e22dff21a7835
BLAKE2b-256 19ebae9d70ee573d44fd92af0ef00c225501e401a1f1a1fc781169da4a394c24

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for traj_dist_rs-1.0.0rc2-cp313-cp313-macosx_11_0_x86_64.whl
Algorithm Hash digest
SHA256 9e690d24d42578a26628309c0e0524fa4eb5b2abd31ba6c217ecd753bd447b2f
MD5 66a33db4eaae25c182bdb16749dd6e64
BLAKE2b-256 e43b9720e88a5a0bf7f8eadfac99be8d24bc5918feb9a5290fcc04ed735f9eb0

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for traj_dist_rs-1.0.0rc2-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 155e73174b94c70c60c8b59d2249f2f6c60f01b90698d7afc6702e090b69a25b
MD5 d5633cf7b8f05ab35a6378176b0995b1
BLAKE2b-256 f929584340cdaaffaa25e54e0a549db3df268269ea688f9a501b2e35d089560f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for traj_dist_rs-1.0.0rc2-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 f3d5c98a0b86a86008b27ddcc77000a4dcc3417a922b40eb5f21cf494638ce30
MD5 d0883cb33265d925f4525b4c49503fa7
BLAKE2b-256 7fbb66240aa64e9c6eb517a262fb25866dda60c8f897d0ed18e80f1cc3f8b0ba

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for traj_dist_rs-1.0.0rc2-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 2ffbe7e3c31b4d945e56585a1e3c7f4e1aafc0b6633e8e3e43eee1403179ad2e
MD5 043d38180193222797c143f7e762c80b
BLAKE2b-256 d43bfe5c0fde34101d241f416c1e80b54534faa3e7e737ab7321d87897d48feb

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for traj_dist_rs-1.0.0rc2-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl
Algorithm Hash digest
SHA256 cbf5bb523d5a1b8aadf16875bc54b24391cb5a507a642d56aa3bc7a9d1a6973f
MD5 842ada38ba5ab0cb416a935131ee0afc
BLAKE2b-256 1834e9509022bd7e6a4c6fbd4fda9de04ac47c50e1c2a4668e1b6a60f8501af5

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for traj_dist_rs-1.0.0rc2-cp312-cp312-macosx_11_0_x86_64.whl
Algorithm Hash digest
SHA256 2c039614c8a1eb1c05b9b6a6e1cca8f38e42a8cfe5d69a33cc6616a1b53c2fb9
MD5 d57ff74cd9982d58925517dc992fdacd
BLAKE2b-256 321a07c73214286a95d5e8f0cf8d39b514bbfe1dbabd32b05e38d56d93d0de94

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for traj_dist_rs-1.0.0rc2-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 c7ae719b178df96d0861e3294953dd7e6ad7c41f3bd44c12c69f50f90796559b
MD5 88cdf2a93a6456ae04fde54075353f9d
BLAKE2b-256 d6097f8d5a3d13db61e78fb9d9d99c0a2a99e8e194e9251ee491d7fcc69946bb

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for traj_dist_rs-1.0.0rc2-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 508655a2ebb05f7aedf416d6f09715db2333be4fc6a1a262a6b2ac0958215d25
MD5 5ca614a56a458635b2ffd65ba2b08f6e
BLAKE2b-256 8f65d20fb91e79f39df33ba960e1ab956ea39b0f642d71913294f3333e667b68

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for traj_dist_rs-1.0.0rc2-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 99b71d34552e387340eff0b1e44dc69c320ffc9e49ad11a9798a437825aaf94a
MD5 cd844fc3e568780b858ba5c1ad45032b
BLAKE2b-256 88ba4fa1212513ee3f2da07a284208a9960f4d478036edf75ea38203c8a42bde

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for traj_dist_rs-1.0.0rc2-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.whl
Algorithm Hash digest
SHA256 a0618bb8b081f5ecef2939499011a963c9f327634b588625c44377481562e4d1
MD5 2354f1df2a4cbe6a369ca6bb73b49d01
BLAKE2b-256 46ec60533fd07f693dd5e2450b3f113df09c91a9840982dd4bbc289e7e16d2ba

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for traj_dist_rs-1.0.0rc2-cp311-cp311-macosx_11_0_x86_64.whl
Algorithm Hash digest
SHA256 d5812d0726bcbd3bcbe596af5424adc7e34300486d856227d0dec5fdb9a664cf
MD5 943c8496f5b8ea49703eca092b9c908d
BLAKE2b-256 d0940c4b851e4e6a1c557edbdf07e512e719f36e2402724727366f7fa326ff89

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for traj_dist_rs-1.0.0rc2-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 bd077dd88e1058658225f0f2ac5424633f115cb9db7cb14f72ffef40cd463f3c
MD5 98b4291282824873241fba656f14f60d
BLAKE2b-256 477c051d663c1881d7b29d0e9ff8f794032f992f0b5d5ea2c05a29fe0ca2faf0

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for traj_dist_rs-1.0.0rc2-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 70a75c58d2b6c4218fabf4c99b3c82c6b389c080f4aa6dbd077b0c46be749ebe
MD5 6566cc76f0a8d3e8bb3264f80c56c0be
BLAKE2b-256 d8509b7e34c7b880c3c3827ca46e8e4015bc51d4e30ca9d37a33884233c3a0f1

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for traj_dist_rs-1.0.0rc2-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 a087404865e3a50edabd329c1284d71c5485d75690063db712141cae7df89344
MD5 c5c83f1f45c169fb8ef1d7da08db36bc
BLAKE2b-256 039fd6c3d041644f717916f43a1999976518c6be5cf888a50ba04ce423bb8c1c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for traj_dist_rs-1.0.0rc2-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.whl
Algorithm Hash digest
SHA256 363a0e4b76b7f544af99bfca4af6a45550d04b39dd3096235e3d6f53305e3588
MD5 c8529705c164a6ad059afa438e47b396
BLAKE2b-256 0887384475bb72f22ada42a386d25f9ea52c6cde6f3453b3028cab0742c8c875

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for traj_dist_rs-1.0.0rc2-cp310-cp310-macosx_11_0_x86_64.whl
Algorithm Hash digest
SHA256 36064c4fef58c2dff314019860cafc66ddca48f28b5f27897ab2ca4d3d5138ad
MD5 f331cd2a18e64a8a1e4f63df9f4f3efa
BLAKE2b-256 13c46fd2071e85bdea398ed11f21d4bc4f77dcec13d1c260f96144912801f0d8

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for traj_dist_rs-1.0.0rc2-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 5e59d876d34bddce88690894a2baa1108b4967e3dd434b0d54bc04370f177e97
MD5 5dfa7e7ef4d4d42bca87d743af3896a8
BLAKE2b-256 af3df9e597c2e594e0be6462b65113d22c575a54dec9873dfe94eca5a413f70b

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