Skip to main content

fast-unionfind

Disjoint sets (union-find) for Python at C speed, with no dependencies.

from fast_unionfind import unionfind

uf = unionfind(1_000_000)
uf.unite(3, 7)          # True: two sets became one
uf.unite(7, 3)          # False: already the same set
uf.connected(3, 7)      # True
uf[7] == uf.find(3)     # True

It is link-by-rank with path halving, so any sequence of m operations over n elements costs O(m α(n)) — effectively constant per operation. It has no runtime dependencies at all (not even numpy), it is compiled with Cython, and it is safe to query from many threads at once, including on free-threaded Python.

Why another union-find

Two reasons.

There was no C-speed union-find available as a stand-alone package. The fast implementations live inside larger libraries, as internals you cannot depend on.

Building one efficiently is less trivial than it looks. The union-finds inside two widely used clustering libraries, hdbscan and scikit-learn, had subtle performance bugs that made single-linkage labelling quadratic while every result stayed correct. We found and reported both: hdbscan#731 and scikit-learn#34626 (a fix is in review as #34872).

Install

pip install fast-unionfind

Building from source needs a C compiler and Cython.

Python API

unionfind(n) builds a union-find over the elements 0 … n-1 and picks the narrowest index width that fits: a UnionFind32 (4 bytes per element) up to 2³²−1 elements, a UnionFind64 (8 bytes) beyond that. Either class can also be built directly. UnionFind is their common base, for annotations and isinstance checks, and cannot be instantiated itself.

uf.unite(x, y) Merge the sets holding x and y. True if they were distinct.
uf.union(x, y) Alias of unite, under the name the literature uses.
uf.find(x), uf[x] The representative of x's set.
uf.connected(x, y) Whether x and y are in the same set.
len(uf) The number of elements, not of sets.
uf.labels() Every element's representative, as an array.array.
uf.width 32 or 64.
width_for(n) The width unionfind(n) would choose, without allocating.

Elements are ids, not sequence positions. Anything outside range(n) raises IndexError, negative values included, so uf[-1] is an error rather than the last element.

Representatives change as sets merge, so compare them rather than store them.

There is no set count or grouping method, because both are one visible line on top of labels(), and writing them out keeps their O(n) cost in plain sight:

n_sets = len(set(uf.labels()))

groups = collections.defaultdict(list)
for element, root in enumerate(uf.labels()):
    groups[root].append(element)

labels() returns a buffer, so numpy.frombuffer(uf.labels(), dtype=...) wraps it without copying if you do have numpy.

Union-finds pickle exactly, ranks included, so a restored one links later unions the same way the original would have.

Cython API

The union-find itself is not a method. It is a pair of fused cdef inline functions defined in the .pxd, so a module that cimports them compiles its own copy, specialised for its index width, and the C compiler inlines them into your loop:

from libc.stdint cimport uint32_t
from fast_unionfind.core cimport UnionFind32, uf_find, uf_unite

def kruskal(Py_ssize_t n, uint32_t[::1] ei, uint32_t[::1] ej):
    cdef UnionFind32 uf = UnionFind32(n)      # owns the memory
    cdef uint32_t* parents = uf.parents       # plain struct reads:
    cdef unsigned char* ranks = uf.ranks      # the class is final
    cdef Py_ssize_t k, merged = 0
    with nogil:
        for k in range(ei.shape[0]):
            if uf_unite(parents, ranks, ei[k], ej[k]):
                merged += 1
    return merged
uf_find(parents, x) Root of x, halving the path. noexcept nogil, unchecked.
uf_unite(parents, ranks, x, y) Link by rank. True if it merged. noexcept nogil, unchecked.

Both are fused over uint32_t and uint64_t. Use UnionFind64's parents for the wide one. They do no bounds checking, which is the point of this layer. Keep the owning UnionFind32/UnionFind64 alive for as long as you use its pointers.

The .pxd files ship in the wheel, so an installed package is enough for Cython to resolve the cimport. To be explicit anyway, add fast_unionfind.get_include() to your extension's include_dirs.

Since the core compiles into your module, a consumer does not even import fast_unionfind at runtime for these calls, only to construct the object that owns the arrays.

Thread safety

Concurrent finds are safe as long as no union is running at the same time. They do race, on path-compression stores, but harmlessly. Every such store points a node at one of its own ancestors, so the root stays reachable and unchanged. A lost write can only undo some compression, never send a walk somewhere wrong, and the aligned integer slots mean no store is ever half-written. This is what makes a lock-free parallel "are these already connected?" filter over a Kruskal edge list sound.

Unions must not run concurrently with each other or with finds. Serialise them.

The extension is declared freethreading_compatible, and nothing in it needs the GIL.

Performance

Two workloads over m = 4n random edges, written as Cython loops. The first, unite_all, is Kruskal's scan. The second, filter_scan, unites half the edges and then asks "already connected?" of all of them, which is two finds per edge. The comparison is the same algorithm written the usual way, as methods on a cdef class cimported from another extension module, where Cython must call through the imported vtable and nothing can inline.

n workload inlined core cimported class speedup
100 000 unite_all 2 ms 3 ms 1.51×
100 000 filter_scan 2 ms 4 ms 1.64×
300 000 unite_all 7 ms 9 ms 1.36×
300 000 filter_scan 9 ms 13 ms 1.49×
1 000 000 unite_all 24 ms 35 ms 1.45×
1 000 000 filter_scan 32 ms 51 ms 1.57×
10 000 000 unite_all 1.17 s 1.53 s 1.30×
10 000 000 filter_scan 1.59 s 2.17 s 1.37×

Best of 50 runs at n ≤ 300 000 and best of 5 above that, on x86-64 with GCC -O3, Python 3.14 and Cython 3.3. The gain narrows at 10 million elements, where the 40 MB parent array no longer fits in cache and memory traffic dominates the call cost.

From Python, method calls cost about 42 ns each, which is almost all interpreter overhead and the same as calling a class method directly.

The class-based column was measured before that implementation was retired, so it cannot be re-run from this repository. python benchmarks/bench.py times this package's workloads and Python-level calls, compiling the workloads on first use.

License

BSD 3-clause; see LICENSE.

Metadata

Release files for fast-unionfind 1.0.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for fast-unionfind 1.0.0
File Size Uploaded
fast_unionfind-1.0.0.tar.gz 22.4 kB Details

Built distributions (wheels)

Table of built distributions (wheels) for fast-unionfind 1.0.0
File
fast_unionfind-1.0.0-cp315-cp315t-win_amd64.whl CPython 3.15 CPython 3.15 free-threading Windows x86-64 Details
fast_unionfind-1.0.0-cp315-cp315t-musllinux_1_2_x86_64.whl CPython 3.15 CPython 3.15 free-threading Linux musl 1.2+ x86-64 Details
fast_unionfind-1.0.0-cp315-cp315t-musllinux_1_2_aarch64.whl CPython 3.15 CPython 3.15 free-threading Linux musl 1.2+ ARM64 Details
fast_unionfind-1.0.0-cp315-cp315t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl CPython 3.15 CPython 3.15 free-threading Linux glibc 2.17+ x86-64, Linux glibc 2.28+ x86-64 Details
fast_unionfind-1.0.0-cp315-cp315t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl CPython 3.15 CPython 3.15 free-threading Linux glibc 2.17+ ARM64, Linux glibc 2.28+ ARM64 Details
fast_unionfind-1.0.0-cp315-cp315-win_amd64.whl CPython 3.15 CPython 3.15 Windows x86-64 Details
fast_unionfind-1.0.0-cp315-cp315-musllinux_1_2_x86_64.whl CPython 3.15 CPython 3.15 Linux musl 1.2+ x86-64 Details
fast_unionfind-1.0.0-cp315-cp315-musllinux_1_2_aarch64.whl CPython 3.15 CPython 3.15 Linux musl 1.2+ ARM64 Details
fast_unionfind-1.0.0-cp315-cp315-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl CPython 3.15 CPython 3.15 Linux glibc 2.17+ x86-64, Linux glibc 2.28+ x86-64 Details
fast_unionfind-1.0.0-cp315-cp315-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl CPython 3.15 CPython 3.15 Linux glibc 2.28+ ARM64, Linux glibc 2.17+ ARM64 Details
fast_unionfind-1.0.0-cp314-cp314t-win_amd64.whl CPython 3.14 CPython 3.14 free-threading Windows x86-64 Details
fast_unionfind-1.0.0-cp314-cp314t-musllinux_1_2_x86_64.whl CPython 3.14 CPython 3.14 free-threading Linux musl 1.2+ x86-64 Details
fast_unionfind-1.0.0-cp314-cp314t-musllinux_1_2_aarch64.whl CPython 3.14 CPython 3.14 free-threading Linux musl 1.2+ ARM64 Details
fast_unionfind-1.0.0-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl CPython 3.14 CPython 3.14 free-threading Linux glibc 2.17+ x86-64, Linux glibc 2.28+ x86-64 Details
fast_unionfind-1.0.0-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl CPython 3.14 CPython 3.14 free-threading Linux glibc 2.17+ ARM64, Linux glibc 2.28+ ARM64 Details
fast_unionfind-1.0.0-cp314-cp314-win_amd64.whl CPython 3.14 CPython 3.14 Windows x86-64 Details
fast_unionfind-1.0.0-cp314-cp314-musllinux_1_2_x86_64.whl CPython 3.14 CPython 3.14 Linux musl 1.2+ x86-64 Details
fast_unionfind-1.0.0-cp314-cp314-musllinux_1_2_aarch64.whl CPython 3.14 CPython 3.14 Linux musl 1.2+ ARM64 Details
fast_unionfind-1.0.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl CPython 3.14 CPython 3.14 Linux glibc 2.28+ x86-64, Linux glibc 2.17+ x86-64 Details
fast_unionfind-1.0.0-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl CPython 3.14 CPython 3.14 Linux glibc 2.28+ ARM64, Linux glibc 2.17+ ARM64 Details
fast_unionfind-1.0.0-cp313-cp313-win_amd64.whl CPython 3.13 CPython 3.13 Windows x86-64 Details
fast_unionfind-1.0.0-cp313-cp313-musllinux_1_2_x86_64.whl CPython 3.13 CPython 3.13 Linux musl 1.2+ x86-64 Details
fast_unionfind-1.0.0-cp313-cp313-musllinux_1_2_aarch64.whl CPython 3.13 CPython 3.13 Linux musl 1.2+ ARM64 Details
fast_unionfind-1.0.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl CPython 3.13 CPython 3.13 Linux glibc 2.28+ x86-64, Linux glibc 2.17+ x86-64 Details
fast_unionfind-1.0.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl CPython 3.13 CPython 3.13 Linux glibc 2.28+ ARM64, Linux glibc 2.17+ ARM64 Details
fast_unionfind-1.0.0-cp312-cp312-win_amd64.whl CPython 3.12 CPython 3.12 Windows x86-64 Details
fast_unionfind-1.0.0-cp312-cp312-musllinux_1_2_x86_64.whl CPython 3.12 CPython 3.12 Linux musl 1.2+ x86-64 Details
fast_unionfind-1.0.0-cp312-cp312-musllinux_1_2_aarch64.whl CPython 3.12 CPython 3.12 Linux musl 1.2+ ARM64 Details
fast_unionfind-1.0.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl CPython 3.12 CPython 3.12 Linux glibc 2.17+ x86-64, Linux glibc 2.28+ x86-64 Details
fast_unionfind-1.0.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl CPython 3.12 CPython 3.12 Linux glibc 2.17+ ARM64, Linux glibc 2.28+ ARM64 Details
fast_unionfind-1.0.0-cp311-cp311-win_amd64.whl CPython 3.11 CPython 3.11 Windows x86-64 Details
fast_unionfind-1.0.0-cp311-cp311-musllinux_1_2_x86_64.whl CPython 3.11 CPython 3.11 Linux musl 1.2+ x86-64 Details
fast_unionfind-1.0.0-cp311-cp311-musllinux_1_2_aarch64.whl CPython 3.11 CPython 3.11 Linux musl 1.2+ ARM64 Details
fast_unionfind-1.0.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl CPython 3.11 CPython 3.11 Linux glibc 2.17+ x86-64, Linux glibc 2.28+ x86-64 Details
fast_unionfind-1.0.0-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl CPython 3.11 CPython 3.11 Linux glibc 2.28+ ARM64, Linux glibc 2.17+ ARM64 Details
fast_unionfind-1.0.0-cp310-cp310-win_amd64.whl CPython 3.10 CPython 3.10 Windows x86-64 Details
fast_unionfind-1.0.0-cp310-cp310-musllinux_1_2_x86_64.whl CPython 3.10 CPython 3.10 Linux musl 1.2+ x86-64 Details
fast_unionfind-1.0.0-cp310-cp310-musllinux_1_2_aarch64.whl CPython 3.10 CPython 3.10 Linux musl 1.2+ ARM64 Details
fast_unionfind-1.0.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl CPython 3.10 CPython 3.10 Linux glibc 2.28+ x86-64, Linux glibc 2.17+ x86-64 Details
fast_unionfind-1.0.0-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl CPython 3.10 CPython 3.10 Linux glibc 2.17+ ARM64, Linux glibc 2.28+ ARM64 Details
fast_unionfind-1.0.0-cp310-cp310-macosx_11_0_arm64.whl CPython 3.10 CPython 3.10 macOS 11.0+ ARM64 Details

Total release size: 20.3 MB

Release files / fast_unionfind-1.0.0.tar.gz

Download URL fast_unionfind-1.0.0.tar.gz
Size 22.4 kB
Tags Source
SHA-256 checksum
How to use checksums
2e3cc5a1108cf1278ca601fab3e481777c1e84351cfa5849ae41d87e1f698eb0
BLAKE2b-256 checksum
How to use checksums
e8c4f255b5e590c3bc9aab183bdc74ba57fa04fb7c5afacbf145ead2a45b7c83
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.14.8

Release files / fast_unionfind-1.0.0-cp315-cp315t-win_amd64.whl

Download URL fast_unionfind-1.0.0-cp315-cp315t-win_amd64.whl
Size 110.6 kB
Tags CPython 3.15 CPython 3.15 free-threading Windows x86-64
SHA-256 checksum
How to use checksums
4c85a88dba3a440da3d0aff8c8e862d7b503ce25fc2a91b6d72911b7d478c515
BLAKE2b-256 checksum
How to use checksums
e6a6c54db6d5720a321d0195f681da8049f1063782d9b8785504f93397015d11
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.14.8

Release files / fast_unionfind-1.0.0-cp315-cp315t-musllinux_1_2_x86_64.whl

Download URL fast_unionfind-1.0.0-cp315-cp315t-musllinux_1_2_x86_64.whl
Size 601.9 kB
Tags CPython 3.15 CPython 3.15 free-threading Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
7d18d23dc74c288ba1348b71ab2f9f84f251cabfcc8d1cff4ec627dae30464ba
BLAKE2b-256 checksum
How to use checksums
93b8951b5998129ebc31edd8aea65ca9194aa16ca04556e3c2561fc3090b5290
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.14.8

Release files / fast_unionfind-1.0.0-cp315-cp315t-musllinux_1_2_aarch64.whl

Download URL fast_unionfind-1.0.0-cp315-cp315t-musllinux_1_2_aarch64.whl
Size 590.0 kB
Tags CPython 3.15 CPython 3.15 free-threading Linux musl 1.2+ ARM64
SHA-256 checksum
How to use checksums
56b50db87051a429fbad191ebe93abe57723b778d023c56ca41ccbe65fc8eeb2
BLAKE2b-256 checksum
How to use checksums
7d3b2003ca7ee70417decbcd01580f4380020b96df2485bca276d1c7dcedc461
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.14.8

Release files / fast_unionfind-1.0.0-cp315-cp315t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl

Download URL fast_unionfind-1.0.0-cp315-cp315t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Size 609.8 kB
Tags CPython 3.15 CPython 3.15 free-threading Linux glibc 2.17+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
16b7b9ba7d03e16316bd4f52867afcffcb80c11c84fd5ba4a3fb1a3ce526ae74
BLAKE2b-256 checksum
How to use checksums
d9e41a13f6c91b93379a6fb5d3e5262147bd43f26264b9bc261b2da6e2d47107
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.14.8

Release files / fast_unionfind-1.0.0-cp315-cp315t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl

Download URL fast_unionfind-1.0.0-cp315-cp315t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Size 609.8 kB
Tags CPython 3.15 CPython 3.15 free-threading Linux glibc 2.17+ ARM64 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
034e131e87273852087baad89405575be1baf8d284c706f35317050e4175db8c
BLAKE2b-256 checksum
How to use checksums
eac262f9f6b78b60cf9eea00f6ea8f0c7b4578217a4fafd3bcc22f57f4ab92e2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.14.8

Release files / fast_unionfind-1.0.0-cp315-cp315-win_amd64.whl

Download URL fast_unionfind-1.0.0-cp315-cp315-win_amd64.whl
Size 97.0 kB
Tags CPython 3.15 Windows x86-64
SHA-256 checksum
How to use checksums
161b76cc2ce6f32f564f9d60a8957d444b88a614a0defdf3901dc64ef64ab2c8
BLAKE2b-256 checksum
How to use checksums
604bb766294be39137d5faae1dd4f822f4a8015ced4a53f5192a23914d2cf877
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.14.8

Release files / fast_unionfind-1.0.0-cp315-cp315-musllinux_1_2_x86_64.whl

Download URL fast_unionfind-1.0.0-cp315-cp315-musllinux_1_2_x86_64.whl
Size 608.6 kB
Tags CPython 3.15 Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
6bf81506bb3a3169f6ad15917f30757c0bd8ed432d7f2d137d3f75c7f75e0220
BLAKE2b-256 checksum
How to use checksums
0fead91bdc68283d8cff2e119360aae9f0360b6bbeba591dec339734a211ea45
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.14.8

Release files / fast_unionfind-1.0.0-cp315-cp315-musllinux_1_2_aarch64.whl

Download URL fast_unionfind-1.0.0-cp315-cp315-musllinux_1_2_aarch64.whl
Size 590.8 kB
Tags CPython 3.15 Linux musl 1.2+ ARM64
SHA-256 checksum
How to use checksums
9f14edf02943e1233e344e66baeab07e262ab2c15e61547c3c71ab86f424ead1
BLAKE2b-256 checksum
How to use checksums
9754afd5e8fb0ec0172a707396b21390233c6c6d80a4eb06ce6907e9601d085f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.14.8

Release files / fast_unionfind-1.0.0-cp315-cp315-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl

Download URL fast_unionfind-1.0.0-cp315-cp315-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Size 611.9 kB
Tags CPython 3.15 Linux glibc 2.17+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
599ff8bb94f6d87977599ae85a2c4d210c604cf742b653d3c1f71d7c8d2d9074
BLAKE2b-256 checksum
How to use checksums
3bfb6c869dbbebf8188ca12c2e1b4df13ced417dd149fe5efaad183e5796bcc5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.14.8

Release files / fast_unionfind-1.0.0-cp315-cp315-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl

Download URL fast_unionfind-1.0.0-cp315-cp315-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Size 603.7 kB
Tags CPython 3.15 Linux glibc 2.17+ ARM64 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
eb448dd3638c4f76ad72a9e3a89f25b4d8f70135896dca826970c722f004e50a
BLAKE2b-256 checksum
How to use checksums
90efbbad184caec76349d00e4023ce9c2682da5e2466f992957359d9e0c36f9b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.14.8

Release files / fast_unionfind-1.0.0-cp314-cp314t-win_amd64.whl

Download URL fast_unionfind-1.0.0-cp314-cp314t-win_amd64.whl
Size 111.5 kB
Tags CPython 3.14 CPython 3.14 free-threading Windows x86-64
SHA-256 checksum
How to use checksums
32b0345d0308fc23c0cc922f9a0f1f445d6d58b59080f58a4b3a7ca1f136e800
BLAKE2b-256 checksum
How to use checksums
36a65432fdc2bab27b8983a791c241bcbc0c65a0ca8e3665f0233a065674eae2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.14.8

Release files / fast_unionfind-1.0.0-cp314-cp314t-musllinux_1_2_x86_64.whl

Download URL fast_unionfind-1.0.0-cp314-cp314t-musllinux_1_2_x86_64.whl
Size 599.4 kB
Tags CPython 3.14 CPython 3.14 free-threading Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
e7d46a86f3810c34c98fbc3253d1d143e1f6ebb8921c457436414cd5da75a371
BLAKE2b-256 checksum
How to use checksums
6a6cb970156dadab8c55d7cea23596ba33837ae2300bbfcdb27a8477b63dcca8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.14.8

Release files / fast_unionfind-1.0.0-cp314-cp314t-musllinux_1_2_aarch64.whl

Download URL fast_unionfind-1.0.0-cp314-cp314t-musllinux_1_2_aarch64.whl
Size 594.7 kB
Tags CPython 3.14 CPython 3.14 free-threading Linux musl 1.2+ ARM64
SHA-256 checksum
How to use checksums
f5ab15424a250c6629ba00bfe81bfec5e0d33363416c8b31adcfd9179ca5161a
BLAKE2b-256 checksum
How to use checksums
52a2d926b3dc8b41c30a1198abbc1e7a82370d645b5130ad35a33f6de1776d08
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.14.8

Release files / fast_unionfind-1.0.0-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl

Download URL fast_unionfind-1.0.0-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Size 608.0 kB
Tags CPython 3.14 CPython 3.14 free-threading Linux glibc 2.17+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
2e8d771c264852072605351f4833dea2996ba1de4b5c28e616658a597ff4596d
BLAKE2b-256 checksum
How to use checksums
12f77d547f55ec9aade48c54c0c08ef9290b4ec8ffeff1f79b75ff45b2a87431
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.14.8

Release files / fast_unionfind-1.0.0-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl

Download URL fast_unionfind-1.0.0-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Size 614.3 kB
Tags CPython 3.14 CPython 3.14 free-threading Linux glibc 2.17+ ARM64 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
cab839a2573089007f6ceec9b978787a83769909f1bd37985c7fc044ae5c1bc7
BLAKE2b-256 checksum
How to use checksums
e5a549ed5e03094adc7bd4ab8d581eb60609cf72a611a04d42dc9588b36ec573
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.14.8

Release files / fast_unionfind-1.0.0-cp314-cp314-win_amd64.whl

Download URL fast_unionfind-1.0.0-cp314-cp314-win_amd64.whl
Size 96.9 kB
Tags CPython 3.14 Windows x86-64
SHA-256 checksum
How to use checksums
3cc1e19c9c63ab975b7ea3ceaa1bfbf743efbcc5bc75690b861ec57770fd850c
BLAKE2b-256 checksum
How to use checksums
5224492cbdbf4b4fca83d143dac7690d91a534d8abd0a5799445591fa21f1442
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.14.8

Release files / fast_unionfind-1.0.0-cp314-cp314-musllinux_1_2_x86_64.whl

Download URL fast_unionfind-1.0.0-cp314-cp314-musllinux_1_2_x86_64.whl
Size 601.0 kB
Tags CPython 3.14 Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
58ea3fb52139422d18d134a427eaab1a84ddcf451224640d99ba5b5b1a14cbbe
BLAKE2b-256 checksum
How to use checksums
ec674de78801f74c21fb8ec257771f3c31a9c3cd8717fdf9f63a2505dc09f381
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.14.8

Release files / fast_unionfind-1.0.0-cp314-cp314-musllinux_1_2_aarch64.whl

Download URL fast_unionfind-1.0.0-cp314-cp314-musllinux_1_2_aarch64.whl
Size 588.4 kB
Tags CPython 3.14 Linux musl 1.2+ ARM64
SHA-256 checksum
How to use checksums
ce1f0f0f313051b46e7e1e725bdbc8b6863ba400515c36f10d8fff4cb0eb9244
BLAKE2b-256 checksum
How to use checksums
9e0d80ad791cf242fd602c6b49927bd6e1511855490586d06490833282a4a9e2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.14.8

Release files / fast_unionfind-1.0.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl

Download URL fast_unionfind-1.0.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Size 606.4 kB
Tags CPython 3.14 Linux glibc 2.17+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
8d2026801a7d924ce38324d3a1e4c78b761ba05ba2301ec2a19dd326bc55e1c8
BLAKE2b-256 checksum
How to use checksums
a09754846fc735f64b2540ed5de40750398d62f651ef00236a51095eef7a2890
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.14.8

Release files / fast_unionfind-1.0.0-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl

Download URL fast_unionfind-1.0.0-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Size 600.8 kB
Tags CPython 3.14 Linux glibc 2.17+ ARM64 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
5e5fe3082b3b9b31bd5feb90931c3ed86e25e3049941134a5c75fe664e29f9e1
BLAKE2b-256 checksum
How to use checksums
79226791e47937a18e306442223b758eb37b43a8800693fb5b77cafd5644fe1e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.14.8

Release files / fast_unionfind-1.0.0-cp313-cp313-win_amd64.whl

Download URL fast_unionfind-1.0.0-cp313-cp313-win_amd64.whl
Size 94.1 kB
Tags CPython 3.13 Windows x86-64
SHA-256 checksum
How to use checksums
098e8e209f149b3079cc71ad9cf7eafb8efb948260772e48e095f51c9b75ca53
BLAKE2b-256 checksum
How to use checksums
b2474b5893589775bce4ce585fc647cef707b537f1fd7fb45ae8b9a19bd86096
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.14.8

Release files / fast_unionfind-1.0.0-cp313-cp313-musllinux_1_2_x86_64.whl

Download URL fast_unionfind-1.0.0-cp313-cp313-musllinux_1_2_x86_64.whl
Size 606.8 kB
Tags CPython 3.13 Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
4ee1143eedc80a62aee7445bec5405e2e1f537c7b835660b0dae6b918b1749b2
BLAKE2b-256 checksum
How to use checksums
ec59faf1900cf960319d56251ad3e3598b28f36b4adc19efb9cf26f10e1f63d4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.14.8

Release files / fast_unionfind-1.0.0-cp313-cp313-musllinux_1_2_aarch64.whl

Download URL fast_unionfind-1.0.0-cp313-cp313-musllinux_1_2_aarch64.whl
Size 588.0 kB
Tags CPython 3.13 Linux musl 1.2+ ARM64
SHA-256 checksum
How to use checksums
0adbf18c306d737901095dfe768b712cb93ff4de4677969cbf2537487d278887
BLAKE2b-256 checksum
How to use checksums
39ca69cc3686fa0b5eaba5a101183c042d9ef691720e67307d7964e370f7eb31
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.14.8

Release files / fast_unionfind-1.0.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl

Download URL fast_unionfind-1.0.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Size 611.2 kB
Tags CPython 3.13 Linux glibc 2.17+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
82b07e9554edd176db97115fa1e783c50711a942ab78eb6682bad62c2c9cb8aa
BLAKE2b-256 checksum
How to use checksums
41fb019bd1579e4b819a7ce8351a21af2c35648d91e769e7bda02d9b2a0ce4c6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.14.8

Release files / fast_unionfind-1.0.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl

Download URL fast_unionfind-1.0.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Size 602.5 kB
Tags CPython 3.13 Linux glibc 2.17+ ARM64 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
994aeadfe3634b94051e107ed8d52d0fdca14b68a5126ca6d95a5db622ea3909
BLAKE2b-256 checksum
How to use checksums
e5111c2b97646110749e5e885fca0a9b87749c29e699479bbd563a858e348b70
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.14.8

Release files / fast_unionfind-1.0.0-cp312-cp312-win_amd64.whl

Download URL fast_unionfind-1.0.0-cp312-cp312-win_amd64.whl
Size 94.4 kB
Tags CPython 3.12 Windows x86-64
SHA-256 checksum
How to use checksums
45bf54cccaa3015f062b1db5b6d38ec710dd7a7b1856f6e54b111efb91c2192a
BLAKE2b-256 checksum
How to use checksums
ed43b3a5038035b4a59dda9a81b3c742e913476109c1b290ba99f425a0e17a15
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.14.8

Release files / fast_unionfind-1.0.0-cp312-cp312-musllinux_1_2_x86_64.whl

Download URL fast_unionfind-1.0.0-cp312-cp312-musllinux_1_2_x86_64.whl
Size 612.6 kB
Tags CPython 3.12 Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
cb4142bee3d801e32354da3d2db163386b1b084ddcc786c70bb4b486b53d6a37
BLAKE2b-256 checksum
How to use checksums
ced9b3e37c19f8eb90164e787e471e904575e1c2e8e32a75f616f46ca0fa6819
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.14.8

Release files / fast_unionfind-1.0.0-cp312-cp312-musllinux_1_2_aarch64.whl

Download URL fast_unionfind-1.0.0-cp312-cp312-musllinux_1_2_aarch64.whl
Size 594.4 kB
Tags CPython 3.12 Linux musl 1.2+ ARM64
SHA-256 checksum
How to use checksums
efd15c1e4ecc71c293804c35a5c48ff7e5da1adfb2c0b0bf586d6d2489d518ea
BLAKE2b-256 checksum
How to use checksums
a0543c883e3eb7f3b31165425f0c45131853a56c191cc14dcd16500681690c4f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.14.8

Release files / fast_unionfind-1.0.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl

Download URL fast_unionfind-1.0.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Size 616.8 kB
Tags CPython 3.12 Linux glibc 2.17+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
96918afe9eafe42e0698ec44c6501826c11fcb9b5b396b3c899a5c66ee0c79a5
BLAKE2b-256 checksum
How to use checksums
504761f8b29a40aa42284a0d9ab5a89aac65f80efbd7f9580dc51bf780a345db
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.14.8

Release files / fast_unionfind-1.0.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl

Download URL fast_unionfind-1.0.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Size 608.0 kB
Tags CPython 3.12 Linux glibc 2.17+ ARM64 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
655ccc6aa736f1c16824e1115690c13e8afbb2a65136a77e4b5b0058a52403ed
BLAKE2b-256 checksum
How to use checksums
47fb5aaf0f06253cf88770f1261e12838b4672b8df4039a87cd2221385fb0934
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.14.8

Release files / fast_unionfind-1.0.0-cp311-cp311-win_amd64.whl

Download URL fast_unionfind-1.0.0-cp311-cp311-win_amd64.whl
Size 94.4 kB
Tags CPython 3.11 Windows x86-64
SHA-256 checksum
How to use checksums
bbb81a14ae5f91d34500a07ea63014f8eb91b9765df8f6eb7d56d4ff055979f9
BLAKE2b-256 checksum
How to use checksums
c9950c00b2a72f09458901c8ddf4949786b398e4755339fb7518c1f631dcfba8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.14.8

Release files / fast_unionfind-1.0.0-cp311-cp311-musllinux_1_2_x86_64.whl

Download URL fast_unionfind-1.0.0-cp311-cp311-musllinux_1_2_x86_64.whl
Size 626.4 kB
Tags CPython 3.11 Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
269fe00cff7f611c2cb01fbd5aafc3eaa535815df61323afd5fc655631831aab
BLAKE2b-256 checksum
How to use checksums
3d6accbfdde7e7751b65a7b1a17463154b43fec3f1727a61d2806251d1868f55
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.14.8

Release files / fast_unionfind-1.0.0-cp311-cp311-musllinux_1_2_aarch64.whl

Download URL fast_unionfind-1.0.0-cp311-cp311-musllinux_1_2_aarch64.whl
Size 613.6 kB
Tags CPython 3.11 Linux musl 1.2+ ARM64
SHA-256 checksum
How to use checksums
bc6721754f7d1e11a3c69f82a834ab34917bbe0b6ea0919de50392966b2d7e74
BLAKE2b-256 checksum
How to use checksums
f2d15e1fb5871978e2c759ba8bc8b723f815bc74ff0327618133ef80a4f25349
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.14.8

Release files / fast_unionfind-1.0.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl

Download URL fast_unionfind-1.0.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Size 625.7 kB
Tags CPython 3.11 Linux glibc 2.17+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
c553babb4afb8b4e69f4a03234a44b32ba70ab95428c9f091702ef1eb3d27878
BLAKE2b-256 checksum
How to use checksums
2ce17c45f4ba54d1cabb603b528ec85bf7234a40b20856c8e5a96d8f4bafd4e4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.14.8

Release files / fast_unionfind-1.0.0-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl

Download URL fast_unionfind-1.0.0-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Size 621.1 kB
Tags CPython 3.11 Linux glibc 2.17+ ARM64 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
961878f9b9d1685f23e2e77f8a0bc067e0726321f31b2d74b90dbf964daefb47
BLAKE2b-256 checksum
How to use checksums
8fbdbd9697e6efad0b6ac43e3aad62287ab122e98e609354fd89d7ae71d1c56a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.14.8

Release files / fast_unionfind-1.0.0-cp310-cp310-win_amd64.whl

Download URL fast_unionfind-1.0.0-cp310-cp310-win_amd64.whl
Size 94.6 kB
Tags CPython 3.10 Windows x86-64
SHA-256 checksum
How to use checksums
8d4932244b7803295130f4e628f0a19911c21cf2789da69e062b975601122124
BLAKE2b-256 checksum
How to use checksums
8a4e1a66dbce09d1bb23eff1337124e0ce9584fca510c3c71f3e737c343df2ca
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.14.8

Release files / fast_unionfind-1.0.0-cp310-cp310-musllinux_1_2_x86_64.whl

Download URL fast_unionfind-1.0.0-cp310-cp310-musllinux_1_2_x86_64.whl
Size 595.9 kB
Tags CPython 3.10 Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
5b31d929afa9608e6dd77193ca9dda134090994ea24c69d60ca8d956bac404da
BLAKE2b-256 checksum
How to use checksums
c80bbd0e0a6a51ce03f3dad799e753a69707636f784d6d5238ba504b2411817c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.14.8

Release files / fast_unionfind-1.0.0-cp310-cp310-musllinux_1_2_aarch64.whl

Download URL fast_unionfind-1.0.0-cp310-cp310-musllinux_1_2_aarch64.whl
Size 584.9 kB
Tags CPython 3.10 Linux musl 1.2+ ARM64
SHA-256 checksum
How to use checksums
31a151f2a194113b33baaf8e93baf8361bbd2b35e7f1bd979522795b5b5fb195
BLAKE2b-256 checksum
How to use checksums
8a23d3f621afd7167dbfba723006883231a484ddce9b50abe5b893d5ef6fe2ec
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.14.8

Release files / fast_unionfind-1.0.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl

Download URL fast_unionfind-1.0.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Size 594.9 kB
Tags CPython 3.10 Linux glibc 2.17+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
1d4c5e17930d3c3904c52ce0aa60066a4d620c9fbd1efc94a0456c1747c29b3f
BLAKE2b-256 checksum
How to use checksums
edff74fe2b8dfce5ff00f8343394c859296b6b6af2ce06f08a70911cda987e50
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.14.8

Release files / fast_unionfind-1.0.0-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl

Download URL fast_unionfind-1.0.0-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Size 592.3 kB
Tags CPython 3.10 Linux glibc 2.17+ ARM64 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
da553e9c1fad9cd1d844669f25e8bef812dfe026aa44791458e9be63d3726098
BLAKE2b-256 checksum
How to use checksums
b07bc15f7580740c5b930c421aab6834172d39bb7f77af8ac97689c4be18343d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.14.8

Release files / fast_unionfind-1.0.0-cp310-cp310-macosx_11_0_arm64.whl

Download URL fast_unionfind-1.0.0-cp310-cp310-macosx_11_0_arm64.whl
Size 105.6 kB
Tags CPython 3.10 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
e8459b12fb524fb2b1e30471fbbf7cd286ac34ae6e19ace048c9f8a89db65308
BLAKE2b-256 checksum
How to use checksums
fec2e4317370c1d4911e8db0f223bec3f0d6326bd7b31120868e99e1cf175e16
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.8

Release history Release notifications | RSS feed

This release

1.0.0 This release

42 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page