Skip to main content

Fast tree distance calculations (Robinson-Foulds, Weighted RF, Kuhner-Felsenstein) for phylogenetic trees

Project description

๐ŸŒฒโšก rapidtrees

Blazingly fast pairwise phylogenetic tree distance calculations โ€” Robinsonโ€“Foulds, Weighted RF, and Kuhnerโ€“Felsenstein โ€” powered by Rust

Crates.io PyPI CI Coverage License: MIT

Overview โ€ข Installing โ€ข Usage โ€ข Python API โ€ข Snap Format โ€ข Benchmarks


๐Ÿ—บ๏ธ Overview

rapidtrees computes pairwise tree distances from BEAST/NEXUS .trees files or from precomputed .snap files and writes a labeled distance matrix. Three metrics are supported:

Metric Flag Output Description
Robinsonโ€“Foulds --metric rf integer Symmetric difference of bipartitions
Weighted RF --metric weighted float Branch-length-weighted bipartition difference
Kuhnerโ€“Felsenstein --metric kf float Euclidean distance on branch lengths

โœจ Why rapidtrees?

  • ๐Ÿฆ€ Rust core โ€” zero-overhead bitset operations with a cache-friendly memory layout
  • ๐Ÿ”€ Parallel by default โ€” powered by rayon, automatically scales across all cores
  • ๐Ÿ Python bindings โ€” drop into any Python/NumPy workflow via PyO3
  • ๐Ÿ“ฆ No Rust toolchain required โ€” pre-built wheels on PyPI for Linux, macOS, and Windows
  • ๐Ÿ—œ๏ธ Gzip output โ€” stream directly to .tsv.gz without a separate compression step

๐Ÿš€ Performance

Benchmarked on a ZIKA dataset (283 taxa ยท 4 000 trees ยท ~8 M comparisons) (non-gzipped output):

Metric Total time Throughput
Robinson-Foulds ~2.7 s ~3.0 M comparisons/sec
Weighted RF ~3.4 s ~2.3 M comparisons/sec
Kuhner-Felsenstein ~3.3 s ~2.3 M comparisons/sec

๐Ÿ”ง Installing

๐Ÿ Python (PyPI) โ€” recommended

Pre-built wheels for Linux, macOS, and Windows. No Rust toolchain needed.

pip install rapidtrees

๐Ÿฆ€ CLI (crates.io)

Install the standalone command-line binary. Requires the Rust toolchain.

cargo install rapidtrees

๐Ÿ› ๏ธ From source

Prerequisites

  • Rust toolchain โ€” for building the Rust core
  • pixi โ€” for managing Python and R dependencies

Setup

git clone https://github.com/Joon-Klaps/rapidtrees.git
cd rapidtrees
# Set up environment โ€” installs Python, R (with phangorn), and builds the package
pixi install

Development tasks

# Run Python API tests (includes R/phangorn cross-validation)
pixi run test-python

# Run Rust unit tests
pixi run test-rust

๐Ÿ’ป Usage

rapidtrees \
  (--input <path/to/file.trees> | --snap-input <path/to/file.snap>) \
  --output <path/to/output.tsv[.gz]> \
  [--burnin-trees <N>] \
  [--burnin-states <STATE>] \
  [--use-real-taxa] \
  [--metric rf|weighted|kf] \
  [-q|--quiet]
Flag Description
-i, --input <INPUT> Path to BEAST .trees (NEXUS) file
--snap-input <SNAP_INPUT> Path to .snap file (currently supports only --metric rf)
-o, --output <OUTPUT> Output path. Use .gz suffix for gzip compression; - for stdout
-t, --burnin-trees <N> Drop the first N trees (default: 0)
-s, --burnin-states <STATE> Keep only trees with STATE > STATE (default: 0)
--use-real-taxa Map numeric taxon IDs via the TRANSLATE block
--metric <rf|weighted|kf> Distance metric (default: rf)
-q, --quiet Suppress progress messages (errors still go to stderr)

The output is a square TSV matrix where both the header row and first column contain tree names formatted as <file_basename>_tree_STATE<state>. Use -o - to write to stdout for easy piping.

๐Ÿ’ก Examples

Compute RF matrix โ†’ gzipped file
rapidtrees \
  -i tests/data/hiv1.trees \
  -o out/hiv1_rf.tsv.gz \
  --metric rf

# Reading in beast 0.003s
# Read in 162 taxons for 21 trees
# Creating tree bit snapshots 0.002s
# Determining distances using RF for 210 combinations
# Determining distances using RF 0.000s
# Writing to output 0.000s
Apply burn-in by tree count
rapidtrees \
  -i tests/data/hiv1.trees \
  -o out/hiv1_rf.tsv \
  -t 2

# Reading in beast 0.003s
# Read in 162 taxons for 19 trees
# Creating tree bit snapshots 0.001s
# Determining distances using RF for 171 combinations
# Determining distances using RF 0.000s
# Writing to output 0.000s
Compute RF matrix directly from a snapshot file
rapidtrees \
  --snap-input out/hiv1.snap \
  -o out/hiv1_rf_from_snap.tsv.gz \
  --metric rf

# Read snap with 21 trees and 2193 bipartitions in 0.001s
# Determined distances using RF in 0.000s
# Writing to out/hiv1_rf_from_snap.tsv.gz in 0.000s

๐Ÿ Python API

rapidtrees exposes four functions from its Rust core. All accept a Python iterator of newick strings, keeping memory constant regardless of tree count.

Function Returns
pairwise_rf_from_newick_iter (names, bytes) โ€” RF matrix as flat uint32 bytes, row-major
pairwise_rf_with_snapshots_from_newick_iter (names, bytes, leaf_names, n_bip, bytes, list[list[int]]) โ€” RF + presence matrix + bipartition leaf indices
pairwise_wrf_from_newick_iter (names, list[float]) โ€” Weighted RF, flat row-major
pairwise_kf_from_newick_iter (names, list[float]) โ€” Kuhner-Felsenstein, flat row-major
import rapidtrees as rtd
import numpy as np

trees = [
    "(A:0.1,(B:0.1,C:0.1):0.1);",
    "(A:0.1,(C:0.1,B:0.1):0.1);",
    "((A:0.1,B:0.1):0.1,C:0.1);",
]
names = ["t1", "t2", "t3"]

tree_names, rf_bytes = rtd.pairwise_rf_from_newick_iter(
    names, iter(trees), [{}], [0, 0, 0]
)
rf = np.frombuffer(rf_bytes, dtype=np.uint32).reshape(len(tree_names), -1)

For BEAST .trees files, translate maps, the snapshot API, and multi-file usage see docs/python-api.md.


๐Ÿ“ฆ Snap Format

rapidtrees can export tree snapshots to a compressed binary .snap file for downstream analyses (ESS computation, ASDSF, convergence diagnostics) on HPC clusters without re-parsing the original .trees files. The CLI can also compute RF distance matrices directly from .snap files via --snap-input.

What is a snapshot?

A tree snapshot is a compact bitset representation of a phylogenetic tree. Each bipartition (split) is encoded as a bitset over leaf indices. The full set of snapshots for a tree collection captures everything needed for RF-family distance computations and convergence diagnostics โ€” without storing the original Newick strings.

Note: Snapshots are not human-readable and are not intended for general interchange. They are an internal format optimized for fast distance calculations and cannot be convert to it's original newick-style format.

File layout

A .snap file is a gzip-compressed binary stream with the following sections in order:

โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚  HEADER                                              โ”‚
โ”‚  4 bytes  magic        "SNAP" (0x534E4150)          โ”‚
โ”‚  1 byte   version      format version (currently 2) โ”‚
โ”‚  8 bytes  n_trees      u64 LE โ€” number of trees     โ”‚
โ”‚  8 bytes  n_taxa       u64 LE โ€” number of leaf taxa โ”‚
โ”‚  8 bytes  n_bip        u64 LE โ€” number of unique    โ”‚
โ”‚                         bipartitions across all treesโ”‚
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚  TAXA NAMES                                          โ”‚
โ”‚  For each of n_taxa:                                 โ”‚
โ”‚    4 bytes  length     u32 LE โ€” byte length of name โ”‚
โ”‚    N bytes  name       UTF-8 string                  โ”‚
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚  TREE NAMES                                          โ”‚
โ”‚  For each of n_trees:                                โ”‚
โ”‚    4 bytes  length     u32 LE โ€” byte length of name โ”‚
โ”‚    N bytes  name       UTF-8 string                  โ”‚
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚  PRESENCE MATRIX                                     โ”‚
โ”‚  n_trees ร— n_bip bytes, row-major uint8             โ”‚
โ”‚  presence[i][j] = 1 if bipartition j is in tree i  โ”‚
โ”‚                   0 otherwise                        โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

Bipartition column order is deterministic: columns are sorted in ascending Bitset order (lexicographic over u64 words, i.e. by leaf-index bit pattern), so the same tree set always produces the same column indices regardless of parse order.

What the presence matrix gives you

The presence matrix is sufficient for all major convergence diagnostics:

Diagnostic What you need
Pseudo ESS presence.mean(axis=0) per chain
ASDSF Per-chain split frequencies
Frรฉchet ESS RF distances via XOR of rows
WRF / KF distances Branch lengths (future section)

Note: sum(presence[i] XOR presence[j]) == RF(tree_i, tree_j) exactly.

Presence matrix from Python

Snap files are written and read by the CLI only. From Python, use pairwise_rf_with_snapshots_from_newick_iter to obtain the same presence matrix in memory without writing a file โ€” see the Python API section above.

import rapidtrees as rtd
import numpy as np

tree_names, rf_bytes, leaf_names, n_bip, pres_bytes, bip_leaf_indices = (
    rtd.pairwise_rf_with_snapshots_from_newick_iter(
        names, iter(newicks), translate_maps, map_indices
    )
)
n = len(tree_names)
presence = np.frombuffer(pres_bytes, dtype=np.uint8).reshape(n, n_bip).copy()

# Global split frequencies (for Pseudo ESS / ASDSF)
global_freq = presence.mean(axis=0)

# RF distance between any two trees โ€” no recomputation needed
rf_01 = int((presence[0].astype(int) ^ presence[1].astype(int)).sum())

# Named presence matrix โ€” each column labelled with its bipartition's leaf set
col_labels = ["|".join(leaf_names[i] for i in indices) for indices in bip_leaf_indices]
import pandas as pd
df = pd.DataFrame(presence, index=tree_names, columns=col_labels)

โฑ๏ธ Benchmarks

Benchmarks were run on a MacBook Pro M1. Trees are parsed once and bitset snapshots are reused across all pairwise comparisons. Parallelism is provided by rayon โ€” no manual thread management needed.

Show full benchmark table

Output of cargo bench --bench memory_time_benchmark

Taxa (N) Trees (T) Combinations Est. Memory Actual Memory Wall Time CPU Time
10 100 5.0K 13.96 KB 17.87 KB 172.29 ยตs 733.00 ยตs
10 1000 500.0K 139.65 KB 168.95 KB 5.94 ms 12.99 ms
10 10000 50.0M 1.36 MB 1.64 MB 717.43 ms 1.36 s
10 100000 5.0B 13.64 MB 16.40 MB 3.53 min 4.04 min
100 100 5.0K 133.59 KB 136.09 KB 244.42 ยตs 1.75 ms
100 1000 500.0K 1.30 MB 1.21 MB 17.49 ms 50.99 ms
100 10000 50.0M 13.05 MB 11.95 MB 1.08 s 4.81 s
100 100000 5.0B 130.46 MB 119.41 MB 4.29 min 9.86 min
500 100 5.0K 706.84 KB 713.93 KB 2.02 ms 3.08 ms
500 1000 500.0K 6.90 MB 5.89 MB 27.77 ms 216.87 ms
500 10000 50.0M 69.03 MB 57.84 MB 2.82 s 21.30 s
500 100000 5.0B 690.27 MB 577.28 MB 7.44 min 37.13 min
1000 100 5.0K 1.50 MB 1.51 MB 873.75 ยตs 5.63 ms
1000 1000 500.0K 15.03 MB 11.86 MB 51.22 ms 420.94 ms
1000 10000 50.0M 150.32 MB 115.30 MB 5.12 s 42.92 s
1000 100000 5.0B 1.47 GB 1.12 GB 11.26 min 74.74 min
2000 100 5.0K 3.50 MB 3.51 MB 1.14 ms 9.92 ms
2000 1000 500.0K 35.01 MB 24.15 MB 93.73 ms 838.01 ms
2000 10000 50.0M 350.06 MB 230.59 MB 9.42 s 1.38 min
2000 100000 5.0B 3.42 GB 2.24 GB 18.57 min 141.11 min
5000 100 5.0K 14.30 MB 12.43 MB 61.36 ms 83.85 ms
5000 1000 500.0K 143.02 MB 63.97 MB 224.40 ms 2.09 s
5000 10000 50.0M 1.40 GB 579.40 MB 22.45 s 3.44 min

Note: Weighted RF and KF produce floating-point matrices; RF produces integer matrices.


๐Ÿ” Troubleshooting

  • No trees parsed? Verify the input is a valid NEXUS .trees file and adjust --burnin-* settings.
  • Piping to other tools? Use -q to suppress timing messages on stdout.
  • Gzipped output not working? Ensure the output filename ends with .gz.

โš–๏ธ License

rapidtrees is provided under the MIT License.

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

rapidtrees-0.6.0.tar.gz (146.0 kB view details)

Uploaded Source

Built Distributions

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

rapidtrees-0.6.0-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (537.8 kB view details)

Uploaded PyPymanylinux: glibc 2.17+ x86-64

rapidtrees-0.6.0-pp311-pypy311_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (475.1 kB view details)

Uploaded PyPymanylinux: glibc 2.17+ ARM64

rapidtrees-0.6.0-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (469.6 kB view details)

Uploaded CPython 3.14tmanylinux: glibc 2.17+ ARM64

rapidtrees-0.6.0-cp314-cp314-win_amd64.whl (301.3 kB view details)

Uploaded CPython 3.14Windows x86-64

rapidtrees-0.6.0-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (534.3 kB view details)

Uploaded CPython 3.14manylinux: glibc 2.17+ x86-64

rapidtrees-0.6.0-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (472.3 kB view details)

Uploaded CPython 3.14manylinux: glibc 2.17+ ARM64

rapidtrees-0.6.0-cp314-cp314-macosx_11_0_arm64.whl (421.5 kB view details)

Uploaded CPython 3.14macOS 11.0+ ARM64

rapidtrees-0.6.0-cp314-cp314-macosx_10_12_x86_64.whl (429.8 kB view details)

Uploaded CPython 3.14macOS 10.12+ x86-64

rapidtrees-0.6.0-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (470.1 kB view details)

Uploaded CPython 3.13tmanylinux: glibc 2.17+ ARM64

rapidtrees-0.6.0-cp313-cp313-win_amd64.whl (301.3 kB view details)

Uploaded CPython 3.13Windows x86-64

rapidtrees-0.6.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (534.5 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64

rapidtrees-0.6.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (472.7 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ ARM64

rapidtrees-0.6.0-cp313-cp313-macosx_11_0_arm64.whl (420.9 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

rapidtrees-0.6.0-cp313-cp313-macosx_10_12_x86_64.whl (430.1 kB view details)

Uploaded CPython 3.13macOS 10.12+ x86-64

rapidtrees-0.6.0-cp312-cp312-win_amd64.whl (301.7 kB view details)

Uploaded CPython 3.12Windows x86-64

rapidtrees-0.6.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (535.4 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

rapidtrees-0.6.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (472.9 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ ARM64

rapidtrees-0.6.0-cp312-cp312-macosx_11_0_arm64.whl (421.3 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

rapidtrees-0.6.0-cp312-cp312-macosx_10_12_x86_64.whl (430.5 kB view details)

Uploaded CPython 3.12macOS 10.12+ x86-64

rapidtrees-0.6.0-cp311-cp311-win_amd64.whl (303.2 kB view details)

Uploaded CPython 3.11Windows x86-64

rapidtrees-0.6.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (537.5 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

rapidtrees-0.6.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (474.9 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ ARM64

rapidtrees-0.6.0-cp311-cp311-macosx_11_0_arm64.whl (424.0 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

rapidtrees-0.6.0-cp311-cp311-macosx_10_12_x86_64.whl (433.2 kB view details)

Uploaded CPython 3.11macOS 10.12+ x86-64

rapidtrees-0.6.0-cp310-cp310-win_amd64.whl (303.1 kB view details)

Uploaded CPython 3.10Windows x86-64

rapidtrees-0.6.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (537.5 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

rapidtrees-0.6.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (474.5 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ ARM64

File details

Details for the file rapidtrees-0.6.0.tar.gz.

File metadata

  • Download URL: rapidtrees-0.6.0.tar.gz
  • Upload date:
  • Size: 146.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for rapidtrees-0.6.0.tar.gz
Algorithm Hash digest
SHA256 3b4e56e1d6ea30bb6f8524395c10e1ca7908dcadcc445617b0018c4f72065a26
MD5 6857a92b4878dc9e23453f49b489514b
BLAKE2b-256 d159da79bc1f9ef3d975cd3c2423a9fc98d512871760d228375238cccdd64202

See more details on using hashes here.

Provenance

The following attestation bundles were made for rapidtrees-0.6.0.tar.gz:

Publisher: publish-pypi.yml on Joon-Klaps/rapidtrees

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file rapidtrees-0.6.0-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for rapidtrees-0.6.0-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 401979c1e9df548c2e2ef16167769166863defb09a0a136e8225785a376ad4b4
MD5 c1f5383487c3411df3677f822b7a1875
BLAKE2b-256 6affaa2fab2ce3fdb0ae9365f8f9ce418bc4228a8333bac56d5d7b1a6cdff6cf

See more details on using hashes here.

Provenance

The following attestation bundles were made for rapidtrees-0.6.0-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: publish-pypi.yml on Joon-Klaps/rapidtrees

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file rapidtrees-0.6.0-pp311-pypy311_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for rapidtrees-0.6.0-pp311-pypy311_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 a92d658d1b80d9085cfa93f6d5cb15995aa4a0245c752c30573040ad59db7194
MD5 bfea52826e95b068315b3c02e737b84f
BLAKE2b-256 89d4e941c012af1f48b7f3279431132e8f70bf59f8c53b48a86492e6a63d1635

See more details on using hashes here.

Provenance

The following attestation bundles were made for rapidtrees-0.6.0-pp311-pypy311_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: publish-pypi.yml on Joon-Klaps/rapidtrees

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file rapidtrees-0.6.0-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for rapidtrees-0.6.0-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 07924b3902260e0e852f6b6c00aa8a2b8f22ab02189c755e34ba2986db5b9236
MD5 60b1b31874224b6c4c4e85052e8836ce
BLAKE2b-256 cd58cece7fe421c8430fdf6333d4596c284385c4059a04022e0e4a575ab938c3

See more details on using hashes here.

Provenance

The following attestation bundles were made for rapidtrees-0.6.0-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: publish-pypi.yml on Joon-Klaps/rapidtrees

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file rapidtrees-0.6.0-cp314-cp314-win_amd64.whl.

File metadata

  • Download URL: rapidtrees-0.6.0-cp314-cp314-win_amd64.whl
  • Upload date:
  • Size: 301.3 kB
  • Tags: CPython 3.14, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for rapidtrees-0.6.0-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 443055cc6fd757946e7114eeab2dc6b1439b57dad406998399ec5399ec7c056b
MD5 52e79cf17b6e6f8ec643be280326aa2a
BLAKE2b-256 b7163167dcb58ff6333bdacf676289c4e28c588f0c6b9650eac47560ce46b9f2

See more details on using hashes here.

Provenance

The following attestation bundles were made for rapidtrees-0.6.0-cp314-cp314-win_amd64.whl:

Publisher: publish-pypi.yml on Joon-Klaps/rapidtrees

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file rapidtrees-0.6.0-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for rapidtrees-0.6.0-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 c711afcc04d0eec329a5c1f9580390b9c169dbcf60b48a0eced2f1bb09e3ddcf
MD5 f5e8f6624a67244f6307a21d037f2f11
BLAKE2b-256 786f6ae81f78ac10fa89ff4fc2d3dae8001d41f57a928ee5bb866a9cc5577e4e

See more details on using hashes here.

Provenance

The following attestation bundles were made for rapidtrees-0.6.0-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: publish-pypi.yml on Joon-Klaps/rapidtrees

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file rapidtrees-0.6.0-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for rapidtrees-0.6.0-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 b942db1389fcc5aee84052bbc4b1bf9146a82de3c148629718724fd13b873bc7
MD5 9d49e9256e73dca4efb6bf695906ddbb
BLAKE2b-256 9c7eb9d176321bf349634c6d46d2d5cd6c75e3240b5cb4beb2aae48b2f403452

See more details on using hashes here.

Provenance

The following attestation bundles were made for rapidtrees-0.6.0-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: publish-pypi.yml on Joon-Klaps/rapidtrees

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file rapidtrees-0.6.0-cp314-cp314-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for rapidtrees-0.6.0-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 51be12bc395f9988ad673bbc379234bed000d3a866e35d0487011e31114c2905
MD5 916d7c1e9990df6b50379da3d2de595b
BLAKE2b-256 d67c5ffe5c204e15651ea77335e1b7eb553e8d6f1a2421e29b10e6734b75aea1

See more details on using hashes here.

Provenance

The following attestation bundles were made for rapidtrees-0.6.0-cp314-cp314-macosx_11_0_arm64.whl:

Publisher: publish-pypi.yml on Joon-Klaps/rapidtrees

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file rapidtrees-0.6.0-cp314-cp314-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for rapidtrees-0.6.0-cp314-cp314-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 232f114022832dc8fd26cf5453da21732699e67e90024ef320cf80597cf00c9a
MD5 d7cff9345ad1d4c03146e673e816936c
BLAKE2b-256 7831653d543adff1ff2f0ae5ab3625d02ed6163ed4baa9b59a326f9ea18ce25a

See more details on using hashes here.

Provenance

The following attestation bundles were made for rapidtrees-0.6.0-cp314-cp314-macosx_10_12_x86_64.whl:

Publisher: publish-pypi.yml on Joon-Klaps/rapidtrees

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file rapidtrees-0.6.0-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for rapidtrees-0.6.0-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 ecbabe020d1a3930abb25321727db917b51c31165d655851a013d1edda9688f5
MD5 0068f7f8898d7e1f2e77c3f459e0b8cb
BLAKE2b-256 cf2f7ad42539db97bfeb22e635637fb1af0983ff1e530a0e39c02cc6cb6e6edc

See more details on using hashes here.

Provenance

The following attestation bundles were made for rapidtrees-0.6.0-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: publish-pypi.yml on Joon-Klaps/rapidtrees

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file rapidtrees-0.6.0-cp313-cp313-win_amd64.whl.

File metadata

  • Download URL: rapidtrees-0.6.0-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 301.3 kB
  • Tags: CPython 3.13, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for rapidtrees-0.6.0-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 c6738f2b98f0950c8c79556cf80f871a536b824cf527918c42f09e375c3abc4c
MD5 c05c7eba4cebd22f1039eb22a8c40087
BLAKE2b-256 e1f5359a46bca0d27493c6a7aea3e1be08d825427a308ff5a96ac1cc7e56ba7b

See more details on using hashes here.

Provenance

The following attestation bundles were made for rapidtrees-0.6.0-cp313-cp313-win_amd64.whl:

Publisher: publish-pypi.yml on Joon-Klaps/rapidtrees

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file rapidtrees-0.6.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for rapidtrees-0.6.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 6528948ae95e8e27f8a0a1a8c3718b047ce0a3cbcbe09b585ff158fce7b4e9da
MD5 625c325589d766d1a685432dd93e5570
BLAKE2b-256 80b4db6727aef1ad6d626e19c5aeaa54927c0ad10a08fa8aeefb5155d78a29d6

See more details on using hashes here.

Provenance

The following attestation bundles were made for rapidtrees-0.6.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: publish-pypi.yml on Joon-Klaps/rapidtrees

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file rapidtrees-0.6.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for rapidtrees-0.6.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 65b23fb6372314ada8aa87b17ecc68b5c23a2da544734a604eeaff51f88ab8ab
MD5 3fa05de9454c9940047815a7e2ca7935
BLAKE2b-256 b2d8afb02b9c7f4e326a424ce59baa99c2f9b363c2ad4efa12743b454cbcdee6

See more details on using hashes here.

Provenance

The following attestation bundles were made for rapidtrees-0.6.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: publish-pypi.yml on Joon-Klaps/rapidtrees

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file rapidtrees-0.6.0-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for rapidtrees-0.6.0-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 d742c6a15f96a28a3b24c9c4a718fbb4f2760f00e47209cc527e72860ba1299b
MD5 0e2d82f24c4dfdc14f31c3aa05f3d42d
BLAKE2b-256 58a5ba6487d856c1dd7d1ec6ed8454dcfde659a1a80164da45660fbe96d511cf

See more details on using hashes here.

Provenance

The following attestation bundles were made for rapidtrees-0.6.0-cp313-cp313-macosx_11_0_arm64.whl:

Publisher: publish-pypi.yml on Joon-Klaps/rapidtrees

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file rapidtrees-0.6.0-cp313-cp313-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for rapidtrees-0.6.0-cp313-cp313-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 58416611a3535a60a2c1334c1eb853335126758e4fd99b61faa7ef71fa1127f8
MD5 7b727d2a45e98d9496a365d84175d8b1
BLAKE2b-256 bacf316558f03dd655ad3f3eeb12fcafb71770ae335601a5253ef9351deb63e6

See more details on using hashes here.

Provenance

The following attestation bundles were made for rapidtrees-0.6.0-cp313-cp313-macosx_10_12_x86_64.whl:

Publisher: publish-pypi.yml on Joon-Klaps/rapidtrees

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file rapidtrees-0.6.0-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: rapidtrees-0.6.0-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 301.7 kB
  • Tags: CPython 3.12, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for rapidtrees-0.6.0-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 72bb190ece3eee550ec74f762f23a35f1c02ecf2905e0a65c5667ce7ca3b452b
MD5 baef90a0c5f771dbd8ed5519da843822
BLAKE2b-256 011f84fcc7a9f14bca13bb99b973cb9740abcd7af55f11b3f8d2d111298574c2

See more details on using hashes here.

Provenance

The following attestation bundles were made for rapidtrees-0.6.0-cp312-cp312-win_amd64.whl:

Publisher: publish-pypi.yml on Joon-Klaps/rapidtrees

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file rapidtrees-0.6.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for rapidtrees-0.6.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 092d325934cf057b4726f8e883a0b7c02cdd3cc753eb7e55bb426dcb6cabdc87
MD5 6b7d1c74556f95003ad732262b4c0e0e
BLAKE2b-256 b2caf90db7811beef6a6c327931506ba3959cd1c9445fb3931a8fc5f88143394

See more details on using hashes here.

Provenance

The following attestation bundles were made for rapidtrees-0.6.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: publish-pypi.yml on Joon-Klaps/rapidtrees

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file rapidtrees-0.6.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for rapidtrees-0.6.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 2d49927fa142f8289c91b9d73fac1d5a35ff6f206a107d15627573bdac7643ea
MD5 9850190f11e87aead485cc74b55217b2
BLAKE2b-256 d3904474c5c31d1c649949e906d24fa5f02bf132c10e1954f349860f2015b2ea

See more details on using hashes here.

Provenance

The following attestation bundles were made for rapidtrees-0.6.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: publish-pypi.yml on Joon-Klaps/rapidtrees

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file rapidtrees-0.6.0-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for rapidtrees-0.6.0-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 a4f4c3a8dee8a9bfdd27afe014fbf37be7f023ad48bbdbcc1c87e492c357df30
MD5 4514321a549d2d8ced801a60c41a96b4
BLAKE2b-256 6892b4df1ab68da8e5500a5ac2ba652230cac705a7ad0ade785dfd3546ff8cbb

See more details on using hashes here.

Provenance

The following attestation bundles were made for rapidtrees-0.6.0-cp312-cp312-macosx_11_0_arm64.whl:

Publisher: publish-pypi.yml on Joon-Klaps/rapidtrees

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file rapidtrees-0.6.0-cp312-cp312-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for rapidtrees-0.6.0-cp312-cp312-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 3dd528ef0bf7040984f0b78448a1b9404f192a5d401201b0a426f50c56d150bd
MD5 9413b7820f76106a78f02921c562ec96
BLAKE2b-256 10900652f15a764cffe7501387103f13528ef584f0b7f8cca47ab569b427dc82

See more details on using hashes here.

Provenance

The following attestation bundles were made for rapidtrees-0.6.0-cp312-cp312-macosx_10_12_x86_64.whl:

Publisher: publish-pypi.yml on Joon-Klaps/rapidtrees

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file rapidtrees-0.6.0-cp311-cp311-win_amd64.whl.

File metadata

  • Download URL: rapidtrees-0.6.0-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 303.2 kB
  • Tags: CPython 3.11, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for rapidtrees-0.6.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 c98d30bc9d48e9b1a34c8f30afdcaeafc334c711e03496b8049c71b72279a599
MD5 775206a6680d7d821353133eb0858e90
BLAKE2b-256 42edee6cb971ebe3a9972d862bc68235360d1b077e8815f13c16efddae379b3a

See more details on using hashes here.

Provenance

The following attestation bundles were made for rapidtrees-0.6.0-cp311-cp311-win_amd64.whl:

Publisher: publish-pypi.yml on Joon-Klaps/rapidtrees

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file rapidtrees-0.6.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for rapidtrees-0.6.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 7e6d70aef9e87c31ac0000c669bae7aae9e68da6861cd48c37c1efb5813c53d6
MD5 14c51bc18e500ddb98265d24622829b0
BLAKE2b-256 57670aad516aee2014af6c0899464cbceacddebf4c0793392b195412454d3d15

See more details on using hashes here.

Provenance

The following attestation bundles were made for rapidtrees-0.6.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: publish-pypi.yml on Joon-Klaps/rapidtrees

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file rapidtrees-0.6.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for rapidtrees-0.6.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 f57c11630791fe0eafec008d2885d3e99c918b105e34488a1a186726b4709bb9
MD5 820e1b96696ffd186c491cd960cf0b0d
BLAKE2b-256 df82b7a0d3ad00c898134a27df9a292269e6dd91997b1e4df025adf932710657

See more details on using hashes here.

Provenance

The following attestation bundles were made for rapidtrees-0.6.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: publish-pypi.yml on Joon-Klaps/rapidtrees

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file rapidtrees-0.6.0-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for rapidtrees-0.6.0-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 923d630ce5c32fd7b1d36910c67b7987ddb6a020539f32981cbbad35421f02cc
MD5 31e59c4974a4c211d5823f0acf32b0ce
BLAKE2b-256 864982d01b999eabedee5918af06cc83b42e7c196a0825ff02487abb4b3330d7

See more details on using hashes here.

Provenance

The following attestation bundles were made for rapidtrees-0.6.0-cp311-cp311-macosx_11_0_arm64.whl:

Publisher: publish-pypi.yml on Joon-Klaps/rapidtrees

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file rapidtrees-0.6.0-cp311-cp311-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for rapidtrees-0.6.0-cp311-cp311-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 7b8146d3bd382fe76d17a460588cd06919a85393d92155b1f123d11b6efd0652
MD5 756f3e9ad0823a504e7e19d6a8c51b1a
BLAKE2b-256 118a15da238ac85e5510965c198507c90a9683d2f1b8f71bca5bf28edc97bf8b

See more details on using hashes here.

Provenance

The following attestation bundles were made for rapidtrees-0.6.0-cp311-cp311-macosx_10_12_x86_64.whl:

Publisher: publish-pypi.yml on Joon-Klaps/rapidtrees

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file rapidtrees-0.6.0-cp310-cp310-win_amd64.whl.

File metadata

  • Download URL: rapidtrees-0.6.0-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 303.1 kB
  • Tags: CPython 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for rapidtrees-0.6.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 ec468f985f9c1a0a35e34014516207d8a1ea7ae3fce90492854f9c4891ade0a0
MD5 d2372fec1f9aa9500cb204df1b288d09
BLAKE2b-256 1a76bfaeb6544534249822d4286d6fd3d0e116cac799ba9f16d75d80c619e36e

See more details on using hashes here.

Provenance

The following attestation bundles were made for rapidtrees-0.6.0-cp310-cp310-win_amd64.whl:

Publisher: publish-pypi.yml on Joon-Klaps/rapidtrees

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file rapidtrees-0.6.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for rapidtrees-0.6.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 bf6a6af70786abdc81a0ecee6083f0fb19985cb21ede125ad0801c02c397ddb0
MD5 5207a8cf053aabd8606b39cb7d19c078
BLAKE2b-256 5c6e19283796763ce728993dad5da6739a8ccd81be569ea2f061bef13be7b675

See more details on using hashes here.

Provenance

The following attestation bundles were made for rapidtrees-0.6.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: publish-pypi.yml on Joon-Klaps/rapidtrees

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file rapidtrees-0.6.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for rapidtrees-0.6.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 df4411efcac13a312789e074a4d6906908cc1529373133c81a298aebbc111a1a
MD5 54a47bd764659ded286389c746a14268
BLAKE2b-256 52af97b3a13ea93884bbc48d6f03b6e461eb51f1f9e7cf06a97932176d74748a

See more details on using hashes here.

Provenance

The following attestation bundles were made for rapidtrees-0.6.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: publish-pypi.yml on Joon-Klaps/rapidtrees

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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