# `im-rope` This Rust crate provides a rope implementation based on RRB vectors. Similarly to the standard library `String` type, a `Rope` owns its storage and guarantees that its contents are valid Unicode. Unlike a `String`, it is backed not by a `Vec` but by a `Vector` from the [`im`](https://docs.rs/im) crate. These in turn are backed by a balanced tree structure known as an an RRB tree, which makes a wide variety of operations asymptotically efficient. In particular, ropes can be cloned in constant time, and can be split or concatenated in logarithmic time. # Documentation See [API docs on docs.rs](https://docs.rs/im-rope). ## License This project licensed under the [Apache License 2.0](https://spdx.org/licenses/Apache-2.0.html) with [LLVM exception](https://spdx.org/licenses/LLVM-exception.html). Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in `im-rope` by you, shall be licensed as Apache 2.0 with LLVM exception, without any additional terms or conditions.