Immutable Radix Tree

Porting Go's [`go-immutable-radix`](https://github.com/hashicorp/go-immutable-radix) to Rust. Provides the `iradix` package that implements an immutable [radix tree](http://en.wikipedia.org/wiki/Radix_tree). [github][Github-url] [Build][CI-url] [codecov][codecov-url] [docs.rs][doc-url] [crates.io][crates-url] [crates.io][crates-url] license English | [简体中文][zh-cn-url]
## Introduction The package only provides a single `Tree` implementation, optimized for sparse nodes. As a radix tree, it provides the following: - `O(k)` operations. In many cases, this can be faster than a hash table since the hash function is an `O(k)` operation, and hash tables have very poor cache locality. - Minimum / Maximum value lookups - Ordered iteration A tree supports using a transaction to batch multiple updates (insert, delete) in a more efficient manner than performing each operation one at a time. ## Installation ```toml [dependencies] iradix = "0.1" ``` #### License `iradix` is under the terms of the Mozilla Public License (Version 2.0). See [LICENSE](LICENSE) for details. Copyright (c) 2023 Al Liu. Copyright (c) 2015 HashiCorp, Inc. [Github-url]: https://github.com/al8n/iradix/ [CI-url]: https://github.com/al8n/iradix/actions/workflows/ci.yml [doc-url]: https://docs.rs/iradix [crates-url]: https://crates.io/crates/iradix [codecov-url]: https://app.codecov.io/gh/al8n/iradix/ [zh-cn-url]: https://github.com/al8n/iradix/tree/main/README-zh_CN.md