#union-find #rustc #unification

build ena

Union-find, congruence closure, and other unification code. Based on code from rustc.

27 unstable releases

Uses old Rust 2015

new 0.14.4 Feb 10, 2026
0.14.3 May 6, 2024
0.14.2 Mar 17, 2023
0.14.0 Apr 10, 2020
0.3.0 Oct 27, 2016

#9 in Programming languages

Download history 752623/week @ 2025-10-24 684769/week @ 2025-10-31 585021/week @ 2025-11-07 562398/week @ 2025-11-14 586675/week @ 2025-11-21 493198/week @ 2025-11-28 672211/week @ 2025-12-05 630479/week @ 2025-12-12 354915/week @ 2025-12-19 218767/week @ 2025-12-26 498536/week @ 2026-01-02 725246/week @ 2026-01-09 785848/week @ 2026-01-16 788827/week @ 2026-01-23 781628/week @ 2026-01-30 628783/week @ 2026-02-06

3,121,320 downloads per month
Used in 1,337 crates (25 directly)

MIT/Apache

74KB
1.5K SLoC

An implementation of union-find. See the unify module for more details.


Build Status

An implementation of union-find in Rust; extracted from (and used by) rustc.

Name

The name "ena" comes from the Greek word for "one".

Features

By default, you just get the union-find implementation. You can also opt-in to the following experimental features:

  • bench: use to run benchmarks (cargo bench --features bench)

License

Like rustc itself, this code is dual-licensed under the MIT and Apache licenses. Pull requests, comments, and other contributions are assumed to imply consent to those terms. Moreover, it is understood that any changes here may well be used in rustc itself under the same terms.

Dependencies

~98KB