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.5.1.tar.gz (134.8 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.5.1-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (511.5 kB view details)

Uploaded PyPymanylinux: glibc 2.17+ x86-64

rapidtrees-0.5.1-pp311-pypy311_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (447.2 kB view details)

Uploaded PyPymanylinux: glibc 2.17+ ARM64

rapidtrees-0.5.1-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (442.7 kB view details)

Uploaded CPython 3.14tmanylinux: glibc 2.17+ ARM64

rapidtrees-0.5.1-cp314-cp314-win_amd64.whl (276.2 kB view details)

Uploaded CPython 3.14Windows x86-64

rapidtrees-0.5.1-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (507.3 kB view details)

Uploaded CPython 3.14manylinux: glibc 2.17+ x86-64

rapidtrees-0.5.1-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (442.5 kB view details)

Uploaded CPython 3.14manylinux: glibc 2.17+ ARM64

rapidtrees-0.5.1-cp314-cp314-macosx_11_0_arm64.whl (393.0 kB view details)

Uploaded CPython 3.14macOS 11.0+ ARM64

rapidtrees-0.5.1-cp314-cp314-macosx_10_12_x86_64.whl (402.0 kB view details)

Uploaded CPython 3.14macOS 10.12+ x86-64

rapidtrees-0.5.1-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (443.0 kB view details)

Uploaded CPython 3.13tmanylinux: glibc 2.17+ ARM64

rapidtrees-0.5.1-cp313-cp313-win_amd64.whl (276.3 kB view details)

Uploaded CPython 3.13Windows x86-64

rapidtrees-0.5.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (507.9 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64

rapidtrees-0.5.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (442.5 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ ARM64

rapidtrees-0.5.1-cp313-cp313-macosx_11_0_arm64.whl (393.0 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

rapidtrees-0.5.1-cp313-cp313-macosx_10_12_x86_64.whl (402.1 kB view details)

Uploaded CPython 3.13macOS 10.12+ x86-64

rapidtrees-0.5.1-cp312-cp312-win_amd64.whl (276.7 kB view details)

Uploaded CPython 3.12Windows x86-64

rapidtrees-0.5.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (508.4 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

rapidtrees-0.5.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (442.6 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ ARM64

rapidtrees-0.5.1-cp312-cp312-macosx_11_0_arm64.whl (393.2 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

rapidtrees-0.5.1-cp312-cp312-macosx_10_12_x86_64.whl (402.4 kB view details)

Uploaded CPython 3.12macOS 10.12+ x86-64

rapidtrees-0.5.1-cp311-cp311-win_amd64.whl (277.8 kB view details)

Uploaded CPython 3.11Windows x86-64

rapidtrees-0.5.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (509.8 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

rapidtrees-0.5.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (445.3 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ ARM64

rapidtrees-0.5.1-cp311-cp311-macosx_11_0_arm64.whl (394.8 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

rapidtrees-0.5.1-cp311-cp311-macosx_10_12_x86_64.whl (402.9 kB view details)

Uploaded CPython 3.11macOS 10.12+ x86-64

rapidtrees-0.5.1-cp310-cp310-win_amd64.whl (277.6 kB view details)

Uploaded CPython 3.10Windows x86-64

rapidtrees-0.5.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (509.7 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

rapidtrees-0.5.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (445.3 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ ARM64

File details

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

File metadata

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

File hashes

Hashes for rapidtrees-0.5.1.tar.gz
Algorithm Hash digest
SHA256 ede3447d75ba5f90b26159003508c8f52a00fc28dd55fc7a8ba2cdf0a982cd90
MD5 9449e1651fc8daf6a1d8ca4640ac1d2f
BLAKE2b-256 de91b295c37c6d45a2f0a2dce8185f4c36ed7f6378834b5430c00e4e5fd3e44e

See more details on using hashes here.

Provenance

The following attestation bundles were made for rapidtrees-0.5.1.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.5.1-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for rapidtrees-0.5.1-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 b20abdffc72ab88ebaa513eac266b1f7bc6f88f09c1d5a923b9407f4c7286b53
MD5 40653dbb469839977daf1c0ccd71eeef
BLAKE2b-256 c2cf4a2a978be754698f31c3d9c219f2137a5a54c89721a19e44f04eb0911130

See more details on using hashes here.

Provenance

The following attestation bundles were made for rapidtrees-0.5.1-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.5.1-pp311-pypy311_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for rapidtrees-0.5.1-pp311-pypy311_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 8211a93ff23fb289db3a224655aacc800fca0951f5cc6ddd16e5b9168152cfeb
MD5 a0ccc842fc271b867f7c140d22dc0291
BLAKE2b-256 c60199b2e165b44e9301ce52f13a710cb93c7a13cd5e9ccb6359d82cf7afeb50

See more details on using hashes here.

Provenance

The following attestation bundles were made for rapidtrees-0.5.1-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.5.1-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for rapidtrees-0.5.1-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 afff66ea713eb4ad16d5a41eecdc90c0690d30876c50909e41136ba2bc0d939d
MD5 bc816b09e4eddaaef28451d5a5a6d065
BLAKE2b-256 7b7e024421818f23458425b6d955731d0920d119584a38b8e5925684f3565207

See more details on using hashes here.

Provenance

The following attestation bundles were made for rapidtrees-0.5.1-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.5.1-cp314-cp314-win_amd64.whl.

File metadata

  • Download URL: rapidtrees-0.5.1-cp314-cp314-win_amd64.whl
  • Upload date:
  • Size: 276.2 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.5.1-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 7b5a95c30dfef968acfee897e1350882d16119cf1675785bdbc612bff90c7080
MD5 ccb5b3890ccd4f8f5adb411698c0284b
BLAKE2b-256 951d2002bc8337f324f774a29a5b11f031b8695f6e9340ec7e5a1a6b5a29be0e

See more details on using hashes here.

Provenance

The following attestation bundles were made for rapidtrees-0.5.1-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.5.1-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for rapidtrees-0.5.1-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 58538f19153b0788a695d4a02b4e08f309c479cf005c52b8706fa7a5d1cead9e
MD5 8665e181e057d6dc405fb90f9ea891f2
BLAKE2b-256 f043f6155778bf4d11c21efdc023b2174d4916787026b7653f6875dd39700948

See more details on using hashes here.

Provenance

The following attestation bundles were made for rapidtrees-0.5.1-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.5.1-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for rapidtrees-0.5.1-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 e0be202e9dca0bc10ee2d317fa6da485db4f723762f503bf83f5d4d9a97a720d
MD5 bb64f86bc17af2b3660f43f8c472789a
BLAKE2b-256 d6e62aab76864ece8a5fb55ef6e32255fe97e920e0971273b0d16caca7691a99

See more details on using hashes here.

Provenance

The following attestation bundles were made for rapidtrees-0.5.1-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.5.1-cp314-cp314-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for rapidtrees-0.5.1-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 37db9cfa57d9fc6bd05dc09a3397c6315f1d9ba55c8a86f7cf1650945c93b464
MD5 fa34326f553d7f83a6899c67da47b5cf
BLAKE2b-256 a4a146095a77580a60e0bf2a4ee9278a501db23e75776790bc814e12a438384a

See more details on using hashes here.

Provenance

The following attestation bundles were made for rapidtrees-0.5.1-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.5.1-cp314-cp314-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for rapidtrees-0.5.1-cp314-cp314-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 891d0c9d12276f8f8b213d6e4a08408aa6bfcb7ea123c529f47c208f4cc3344f
MD5 9546242d4fef5b470d67c77998619cff
BLAKE2b-256 6def45b0509922b5b76495e930157ed59b220eb17182e83acd444faac4849d9b

See more details on using hashes here.

Provenance

The following attestation bundles were made for rapidtrees-0.5.1-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.5.1-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for rapidtrees-0.5.1-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 6214b8679ebd80d845ea156e1b1149582c270c5b2fe9138bc46df1d717074a43
MD5 4f7825a2d40020dcfc72c3e320051021
BLAKE2b-256 7c1cf86df7904467309d081e6e8e450165f1b4c8449fef2c7d59b058b15d7972

See more details on using hashes here.

Provenance

The following attestation bundles were made for rapidtrees-0.5.1-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.5.1-cp313-cp313-win_amd64.whl.

File metadata

  • Download URL: rapidtrees-0.5.1-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 276.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.5.1-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 d34e1d5961b91534165191c50c14eade2c879e7d8e65a371fc85c3e4acae7ada
MD5 e58082afbddfe0d73e2a480bde0fe60c
BLAKE2b-256 9de302f934bdba49d14a3b1b036f6466e7637d52ed337edd63daef154d658c96

See more details on using hashes here.

Provenance

The following attestation bundles were made for rapidtrees-0.5.1-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.5.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for rapidtrees-0.5.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 02d0b084b5d07b4969fb14db659ffc16efc0ffa316c00bcc3928945f3ca21a49
MD5 54054b78edaab8cb8e3dedce90cc7d0e
BLAKE2b-256 9058b5855c043a55911e2599a8f9e789faaf7c7e1148068e871ae4d19fddbea9

See more details on using hashes here.

Provenance

The following attestation bundles were made for rapidtrees-0.5.1-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.5.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for rapidtrees-0.5.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 ad57356d8f01f2de1cba1240c777d8d36f653c15c509c7a0afa379843b63e45f
MD5 29c3f16d9e5b7a8ef3d2b62bb27edac5
BLAKE2b-256 7e26aaf10771c56945d37dd9d61d4fe5cdab2581ae075f62a810b165e940ab02

See more details on using hashes here.

Provenance

The following attestation bundles were made for rapidtrees-0.5.1-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.5.1-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for rapidtrees-0.5.1-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 d4d978b2175bbad4564f85c7de0c97c248599bfde72cda666544c71c96403764
MD5 ad778b39f1fcd1768695c77cf9167370
BLAKE2b-256 f547d59e6304c67da05960ad5915439f9f7e7d450a460015f9542e1f977d1f18

See more details on using hashes here.

Provenance

The following attestation bundles were made for rapidtrees-0.5.1-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.5.1-cp313-cp313-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for rapidtrees-0.5.1-cp313-cp313-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 561cd2f17df2f772fba06f4ced394b59b9611c22c8c7966bfaaaa1ae2c2d501c
MD5 e85520611909b38235a876bc92cc7849
BLAKE2b-256 8263afc639de891957f2bb80714a3fcf00a5d0ce43cc44f35c472cbea43e762a

See more details on using hashes here.

Provenance

The following attestation bundles were made for rapidtrees-0.5.1-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.5.1-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: rapidtrees-0.5.1-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 276.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.5.1-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 208ddc1c9e830a933bb9a8aac8ca84f5f1012e97562c7ed31baea76988a0ee05
MD5 0263ac9da1ef42fd045d1600cf5baa5c
BLAKE2b-256 0c7fab00ec3e49a50a99b9229180d0af571ee1091d2973e246b177bc52f9dac6

See more details on using hashes here.

Provenance

The following attestation bundles were made for rapidtrees-0.5.1-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.5.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for rapidtrees-0.5.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 9a8dfce6faf78026662a7f7d456780b493adf33f93db7ea33ba72dc8f789611b
MD5 8189e62d2ddfd3cc544cb5b5189d8ecf
BLAKE2b-256 b32c55d5ba200f13b66ed75afe88471721435356e2566c7373bdb873df492728

See more details on using hashes here.

Provenance

The following attestation bundles were made for rapidtrees-0.5.1-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.5.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for rapidtrees-0.5.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 183292b7e9f461e4dd3efb25df08b016626421faa67eddd16369d156cdca8037
MD5 bf05dea4a72a09f38deb2be66d86861e
BLAKE2b-256 ea9ae14f742475bf657ddca26cd05581cac8fb2e92811ff911e51b805160b2e9

See more details on using hashes here.

Provenance

The following attestation bundles were made for rapidtrees-0.5.1-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.5.1-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for rapidtrees-0.5.1-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 100e0ead1243b0dd350f2e7a3c3f3d9a565734092eb8e9009ecfe1d577d86616
MD5 3ec77eb30e3b1d82cf720290348b5ef8
BLAKE2b-256 3a5106ea1e8a4d8372f5620220eb7ec786a1abd300254f7d0f434c27ed40226f

See more details on using hashes here.

Provenance

The following attestation bundles were made for rapidtrees-0.5.1-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.5.1-cp312-cp312-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for rapidtrees-0.5.1-cp312-cp312-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 50991400b2fcf02e3aa08bdb59aa292a6a18df951b7a3e4bc6c1bd55d05d9ce7
MD5 f3c18543e43873bc5373df73bdab4120
BLAKE2b-256 fd8bedae06adcd398f30d7654a2fdfdf9d7e65697a7eaebea605a205a463470a

See more details on using hashes here.

Provenance

The following attestation bundles were made for rapidtrees-0.5.1-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.5.1-cp311-cp311-win_amd64.whl.

File metadata

  • Download URL: rapidtrees-0.5.1-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 277.8 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.5.1-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 9c8f872daa5102dc3be7b0f0108b2b420290c277ac0a18679b4ca7bc5176af7b
MD5 94b92449723c6b17bbbb3bf4efe61b51
BLAKE2b-256 0710aecb3f733ab312424bab5a025f9e228908c7ef48ac87a820290f71d29de2

See more details on using hashes here.

Provenance

The following attestation bundles were made for rapidtrees-0.5.1-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.5.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for rapidtrees-0.5.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 8c8a59d2eb74f7615a6f6d8f660b0d2684e27a3beaad076cd833f706d6150120
MD5 d191982a622b7e9f7e1e67a01ac92087
BLAKE2b-256 4c39734530a41f748a60f5e469179b004ceaeda186314571cb7f0b2dfa9b7670

See more details on using hashes here.

Provenance

The following attestation bundles were made for rapidtrees-0.5.1-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.5.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for rapidtrees-0.5.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 08f2ca3eb7802b4008c80bc4533a1cf2830949375b8b70c837b3389daaac77a7
MD5 c7e648cdaadf202da792da1674caacfc
BLAKE2b-256 540352e085ed0e4e37ab26cd636daa2edad4668b8900641232b54fbe9f05ad0b

See more details on using hashes here.

Provenance

The following attestation bundles were made for rapidtrees-0.5.1-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.5.1-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for rapidtrees-0.5.1-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 d00ba0c225c7c747782588f371b52d2c5fbfd7d0fdccf6d5098e80e87344d57a
MD5 134fd6014951a171942c02f8b1f88e82
BLAKE2b-256 e1de84c732e6e5641b02d0c52018dfe9e589a32e229e3b5936e2475f01d80e2a

See more details on using hashes here.

Provenance

The following attestation bundles were made for rapidtrees-0.5.1-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.5.1-cp311-cp311-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for rapidtrees-0.5.1-cp311-cp311-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 4532c2d35c05097ebabac06353cefc8d76a72003b8396a7f4dc1a7b72a0be101
MD5 fdab74a9a13b0dfe6813d4ab78e0844e
BLAKE2b-256 82396b1ee5f9d5eef02c5d3a6a0172e01a6592839ad09d6880402a253ac4ac18

See more details on using hashes here.

Provenance

The following attestation bundles were made for rapidtrees-0.5.1-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.5.1-cp310-cp310-win_amd64.whl.

File metadata

  • Download URL: rapidtrees-0.5.1-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 277.6 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.5.1-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 03edc166ddecca67465157f6783f884b042b40b7eec92e55deef02d5a995bf8f
MD5 3e442ba34c6d9f294c3f9ff74b67b337
BLAKE2b-256 6884f411bf7730b71eb554000d5e55b1c759a4115f1ba575de497b1721f846d5

See more details on using hashes here.

Provenance

The following attestation bundles were made for rapidtrees-0.5.1-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.5.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for rapidtrees-0.5.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 f2c7c5c9089233c9acfbf5021dd98576f4fc1568669b3d327453a4918ae1a586
MD5 a8638bc100ef3adfb661f9182aabe5c4
BLAKE2b-256 f7b88d911601589aeb4d462153bdc46584ed7b6f4774b22b89b103a606567a7b

See more details on using hashes here.

Provenance

The following attestation bundles were made for rapidtrees-0.5.1-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.5.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for rapidtrees-0.5.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 eb49696d4dcfe242f9b7fa91cdbed956339b1e7c5104886f8d42694153e59ca6
MD5 24e44a98a0c3b9c04acf4daafc06eeb4
BLAKE2b-256 1a56453cb7b93ea37f64a939ff570a503714116b14324f8c0f5ea5ca1bfd3d39

See more details on using hashes here.

Provenance

The following attestation bundles were made for rapidtrees-0.5.1-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