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.0.tar.gz (127.6 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.0-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (506.7 kB view details)

Uploaded PyPymanylinux: glibc 2.17+ x86-64

rapidtrees-0.5.0-pp311-pypy311_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (441.7 kB view details)

Uploaded PyPymanylinux: glibc 2.17+ ARM64

rapidtrees-0.5.0-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (436.6 kB view details)

Uploaded CPython 3.14tmanylinux: glibc 2.17+ ARM64

rapidtrees-0.5.0-cp314-cp314-win_amd64.whl (271.3 kB view details)

Uploaded CPython 3.14Windows x86-64

rapidtrees-0.5.0-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (502.3 kB view details)

Uploaded CPython 3.14manylinux: glibc 2.17+ x86-64

rapidtrees-0.5.0-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (437.5 kB view details)

Uploaded CPython 3.14manylinux: glibc 2.17+ ARM64

rapidtrees-0.5.0-cp314-cp314-macosx_11_0_arm64.whl (387.5 kB view details)

Uploaded CPython 3.14macOS 11.0+ ARM64

rapidtrees-0.5.0-cp314-cp314-macosx_10_12_x86_64.whl (397.2 kB view details)

Uploaded CPython 3.14macOS 10.12+ x86-64

rapidtrees-0.5.0-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (436.4 kB view details)

Uploaded CPython 3.13tmanylinux: glibc 2.17+ ARM64

rapidtrees-0.5.0-cp313-cp313-win_amd64.whl (270.8 kB view details)

Uploaded CPython 3.13Windows x86-64

rapidtrees-0.5.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (501.9 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64

rapidtrees-0.5.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (438.0 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ ARM64

rapidtrees-0.5.0-cp313-cp313-macosx_11_0_arm64.whl (389.2 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

rapidtrees-0.5.0-cp313-cp313-macosx_10_12_x86_64.whl (397.1 kB view details)

Uploaded CPython 3.13macOS 10.12+ x86-64

rapidtrees-0.5.0-cp312-cp312-win_amd64.whl (271.2 kB view details)

Uploaded CPython 3.12Windows x86-64

rapidtrees-0.5.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (502.5 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

rapidtrees-0.5.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (438.4 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ ARM64

rapidtrees-0.5.0-cp312-cp312-macosx_11_0_arm64.whl (389.5 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

rapidtrees-0.5.0-cp312-cp312-macosx_10_12_x86_64.whl (397.5 kB view details)

Uploaded CPython 3.12macOS 10.12+ x86-64

rapidtrees-0.5.0-cp311-cp311-win_amd64.whl (272.9 kB view details)

Uploaded CPython 3.11Windows x86-64

rapidtrees-0.5.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (505.0 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

rapidtrees-0.5.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (439.9 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ ARM64

rapidtrees-0.5.0-cp311-cp311-macosx_11_0_arm64.whl (389.8 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

rapidtrees-0.5.0-cp311-cp311-macosx_10_12_x86_64.whl (397.7 kB view details)

Uploaded CPython 3.11macOS 10.12+ x86-64

rapidtrees-0.5.0-cp310-cp310-win_amd64.whl (272.8 kB view details)

Uploaded CPython 3.10Windows x86-64

rapidtrees-0.5.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (504.9 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

rapidtrees-0.5.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (439.7 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ ARM64

File details

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

File metadata

  • Download URL: rapidtrees-0.5.0.tar.gz
  • Upload date:
  • Size: 127.6 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.0.tar.gz
Algorithm Hash digest
SHA256 718681c701e19e193ebd2863c32b4e39434acf508326c95daa1824400e1ccd51
MD5 1b916c6702a53b6def036225bc6c1a34
BLAKE2b-256 527db27c920d6c52d5ab047b35de28fecc8ce4d8192cd6eb55aa5f2cd84eac3f

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for rapidtrees-0.5.0-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 69fe6559ee3a5cb6cd3ce4e36bc676445a5c648f7047519e6493d2c515028df7
MD5 092fd92f991fa4ee3f06e62e5f109166
BLAKE2b-256 4a3cf6b489ae8665d2c10e8717a84826ea5e38d47b923b613fc2cc50336e8a38

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for rapidtrees-0.5.0-pp311-pypy311_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 73225178991aa4e65348effb703f62c914434567c6d7d8c1e508e010a7c71a86
MD5 fc5878c6cd2a2befb55661cfe30c104e
BLAKE2b-256 d7c00059c7b210c1c7017fe89cf6243c130492acee6636d68745b34b23d46e63

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for rapidtrees-0.5.0-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 6f88c2e028fb3cb3fe5071f22915c920b4676390be24301749762cef91d4fa7b
MD5 7b5871765a0857dfda7f0fec06fc6c65
BLAKE2b-256 3f771f9b9ac68abc155f49582854b33ce33c20f0fdab27c9d1f1db4049f68b79

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: rapidtrees-0.5.0-cp314-cp314-win_amd64.whl
  • Upload date:
  • Size: 271.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.5.0-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 7aa57369bd36a86c8c0e807fbb340f35932a08d361b9569c90b0842129f8b83a
MD5 df700cf5c27bd8e635d8428263bb1388
BLAKE2b-256 565f3aaed081add1e3e9742accd86e4c5be944b9caa0d143d973b341306aab15

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for rapidtrees-0.5.0-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 8ce61458b4bcb3d393a1582f70ebeeee734532643714c0963c13cbd0a2e6a139
MD5 42359c8c1ec1740fa96f67fbe8038d06
BLAKE2b-256 41bd75321b127695798b64f75ac80dd607ea4d9a39d2e3e118782a5f4c7ca9b4

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for rapidtrees-0.5.0-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 8a85bfe63abf760e5c4a87013f9f036f2d4676b781f85d5d0ce6149e54e07fcd
MD5 5da3231ad2824b6ed921f10ca0cec693
BLAKE2b-256 2b17d2b7d75aee2289f5c2d963916bc29965ec36c16355fa6363fba2c760012f

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for rapidtrees-0.5.0-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 2a5e474d3f350e95c4193e815427a222a006e51b784a91a81ceeb7f87ed38642
MD5 a7936dda8a944a6ebf6034de5e5596e0
BLAKE2b-256 cb5729f0488ea4d04ae3182882854cda68d2aaf8da5858383fe1a09b177a2270

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for rapidtrees-0.5.0-cp314-cp314-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 994dade3853cbce4b6fa49b1b958aa153fb5e1e1bb8d217620c847d41d3d3551
MD5 3b177cf997e62a707d827018a24fc24e
BLAKE2b-256 cbf98a2e24de763a1f636810261cdccbe2b5278d77ec405a3779919d87952500

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for rapidtrees-0.5.0-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 dde579e3d3b87b637d3d4cd86c56b3e8dbb5c40c7b47ed4f38ffa19e95e8dedd
MD5 368acb2ce512bf4661986c55205a6f38
BLAKE2b-256 232498b086c274bcebc7dc37ee8ce05c894da722cbbd0f308831ee85c5672f44

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: rapidtrees-0.5.0-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 270.8 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.0-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 30cf80fe1d9e96e34a3943e70cb2fd4d4425c1224e09210dbbff236309ec792f
MD5 68e1c700c96c2e78458cdec1364d03c0
BLAKE2b-256 025dc3cb90dc4566e51a07d3df3b4234a7d0701daec5a39518eb252c4afc2b1f

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for rapidtrees-0.5.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 4aaf0943d74f5130623ff74459c10e9b2d2ee5c57f539f63296c0672734b72d3
MD5 ffc6a0a2e98bc37650d16dc4dbe2a219
BLAKE2b-256 ededf79053d420c5834a5e1a7457d0e3e981f2f47ef1301182e1d499ae9bb856

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for rapidtrees-0.5.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 07552667874dc60bb19ca78cbbddfcf997dc2d1437809d6f1bc1bda6e9972beb
MD5 500de7957a578dd39e4185955933f799
BLAKE2b-256 3db2135ba01604ab0ce622a4837ddf26809ecef52019d8fe2f16c7e8e4d086c3

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for rapidtrees-0.5.0-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 7bdd330a9072941b90c25390197a4b1a9ed38f6cef0299790d25446475929f6b
MD5 fa3c07d83945b9a51029ba748c5201f1
BLAKE2b-256 2ede386ccca42a576dcb91ffa9daef54d24411b17727bb2af26859aecb8d1d9f

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for rapidtrees-0.5.0-cp313-cp313-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 e49c924584bbc7da5c64c833a83685d75cb74f02fadae42a67b426cf262912e2
MD5 1f131afd148eebaabd6c2a863a151925
BLAKE2b-256 0ec5fd959b2dbfcccdb5e44a111a5bec202967dea4a8e49977eb6f326cd46c2c

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: rapidtrees-0.5.0-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 271.2 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.0-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 10e54d6e23420d3d54807801df0b9cce3b6bef026bdd83c600feadc6683391b3
MD5 50081931155998a851ed623d7224bb2f
BLAKE2b-256 da3e52ab6de675653e6081ea9995f6673423326ea3d796970d71508bdfdb31ab

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for rapidtrees-0.5.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 3b8a8816b0f76ed9a8f759805f21724a3381bf53478c325d6b2f08cd9c87921b
MD5 ba9b6dff4b77c2db1c2bff3543d7eef1
BLAKE2b-256 66a31491ffab0f18178b671e60e33faa6c658843ccb46c569d5ea5a521d589f1

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for rapidtrees-0.5.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 cc4e49f7507d9aba0dbaf313d1f4995a27bf0c57a941ceaa53106c4e849ccbff
MD5 cbfa3a58fcf072ee582e4b25cc6aca62
BLAKE2b-256 79e129605b292d57820e796af18b77d6417c480f9e2e6055bc1f7d4851090b53

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for rapidtrees-0.5.0-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 7b1307e2e46d30e2a16ca4936a0501f2af2b0788824affdbd56486242df776a5
MD5 72cee1cc430e86ae4b911ffa4dc99b3d
BLAKE2b-256 34df2bf1796ec930065dad057af9092fea670ee9f179dd71476a05b7a501a19d

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for rapidtrees-0.5.0-cp312-cp312-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 34afe1236664b78722165563252938e1c017ff9fed0b4c3df48c4fb8fcc9b831
MD5 c99bfc3bfd311c07c56491e17ee099a1
BLAKE2b-256 7d501629599223dc8ba5bcf0df8a78a0ab23db1ba5d78b125e3fa63ccb8a80e7

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: rapidtrees-0.5.0-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 272.9 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.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 a26965683d09eacad24bcbc5e010eee80f0b3242f1293cd272abdbe28c0a50c2
MD5 76b6044360e9853fda15597ce74d95fb
BLAKE2b-256 1ff5149a7414a13249ac4b9cded9981556c947bdf375c971a616c378796bd12b

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for rapidtrees-0.5.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 2209665c8fdb40cd64efd80e9f4eb3552f2ff497e08321d1f14a98943737fdff
MD5 707a03d4e1fd0d5028973793d3ac81a8
BLAKE2b-256 ae99b527a8d3744084325e18a8b221972eeb117d571498ea3688c407b7a97494

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for rapidtrees-0.5.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 5d00bc935bf432e30e7a7d527d0029642bc8bf23043c9afb599cd56ccdd81e90
MD5 008e1769f5ce256a843aaf155e8b218d
BLAKE2b-256 da6c045d625da7547336b8726bd01e70e3a4aa523ca68c4c30b4d6fd11ff8b96

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for rapidtrees-0.5.0-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 dfb3eff95d8fc8cc07bc53f6a792fe55977d406d80f2513c56a1e0026d75f4ac
MD5 cb9af05417fe06529b4524ee4c3d64a3
BLAKE2b-256 7f406c32bb84f17592773f596a620cc85de8cb86b918885b0034eac98a82e69e

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for rapidtrees-0.5.0-cp311-cp311-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 21fd44cd39f51891695963ddf7f81439c0b81907d92dc41517bbafd0deadcf8b
MD5 0f9855993d4387dcec15b2755cc76685
BLAKE2b-256 52198dc5647bd31ad2bf8de9a755153078cd6f8546df57a0afbdb0c1299eb4e2

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: rapidtrees-0.5.0-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 272.8 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.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 a4183c783585b53b9b5d7d0a8c9460c0fb94c7ddfb6e4ae6c89722c0962b8d33
MD5 f2522f6964e36e32c15c896181eac99a
BLAKE2b-256 5c9e46d12345d056e8c88494b5d098d0bccb86729e2a71aeaf55fab02f349333

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for rapidtrees-0.5.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 c626a1f1d76af74c49887ebb435dd86b2d31704eae87b19cdae58bdebcfc3c9c
MD5 978cc41d5e07b33924ab929748202625
BLAKE2b-256 bec6f1be76739ee043f603dbf08e5d846196a82d2b5e58d6c62554fc0063809e

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for rapidtrees-0.5.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 a81ba751c31786bdfada0bdbdb62b16a8c91be4e187eb56806c62c610463ac61
MD5 aca1641416bfa7d797efe3bfbc0dbe51
BLAKE2b-256 784743a534e40c5422be0d178ca9b1bdab81801781d2031c8da6c57a5b491c05

See more details on using hashes here.

Provenance

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