The efficient, intention-preserving sequence CRDT. Guaranteed logarithmic-time operations.
Rust
110
98 commits
updated Jun 21, 2026
Eips1 is the efficient intention-preserving sequence: a sequence CRDT with worst-case non-amortized logarithmic-time operations, minimal memory usage, and no issues with interleaving concurrent insertions or duplicating moved elements as seen in some other CRDTs.
insert, remove, or mv,
which instead of mutating the document directly, returns a remote change
object describing the operation. Once the object is passed to
apply_change, and sent to any network-connected peers, the edit is
complete.Documentation is available on docs.rs.
See this document for a detailed explanation of the design and implementation of Eips, including benchmarks measuring its performance and memory use.
The test-cli directory contains an interactive program that demonstrates the functionality of Eips.
Eips is licensed under version 3 of the GNU Affero General Public License, or (at your option) any later version. See LICENSE.
In addition, the Eips Lesser Network Exception and Eips Peer-to-Peer Exception apply to Eips. These exceptions are additional permissions under section 7 of the GNU AGPL, version 3; as such, if you modify Eips, you may choose whether to extend them to your modified version. For more information about these exceptions, see this repository.
Please note that you do not have to license your project under the AGPL if you use Eips. Your project can be licensed under any AGPLv3-compatible license, including nearly all permissive licenses such as MIT or Apache 2.0. The terms of the AGPL will apply only to the combination of your project with Eips (e.g., source code must be provided along with any compiled binaries); any portion of your project that does not depend on Eips may be used without adherence to the AGPL.
By contributing to Eips, you agree that your contribution may be used according to the terms of Eips’s license, including the Eips Lesser Network Exception and Eips Peer-to-Peer Exception.
Pronounced /aɪps/ (rhymes with “types”). ↩
98 commits
Rust
97.4%
Shell
1.2%
The efficient, intention-preserving sequence CRDT. Guaranteed logarithmic-time operations.
Rust
110
98 commits
updated Jun 21, 2026
Eips1 is the efficient intention-preserving sequence: a sequence CRDT with worst-case non-amortized logarithmic-time operations, minimal memory usage, and no issues with interleaving concurrent insertions or duplicating moved elements as seen in some other CRDTs.
insert, remove, or mv,
which instead of mutating the document directly, returns a remote change
object describing the operation. Once the object is passed to
apply_change, and sent to any network-connected peers, the edit is
complete.Documentation is available on docs.rs.
See this document for a detailed explanation of the design and implementation of Eips, including benchmarks measuring its performance and memory use.
The test-cli directory contains an interactive program that demonstrates the functionality of Eips.
Eips is licensed under version 3 of the GNU Affero General Public License, or (at your option) any later version. See LICENSE.
In addition, the Eips Lesser Network Exception and Eips Peer-to-Peer Exception apply to Eips. These exceptions are additional permissions under section 7 of the GNU AGPL, version 3; as such, if you modify Eips, you may choose whether to extend them to your modified version. For more information about these exceptions, see this repository.
Please note that you do not have to license your project under the AGPL if you use Eips. Your project can be licensed under any AGPLv3-compatible license, including nearly all permissive licenses such as MIT or Apache 2.0. The terms of the AGPL will apply only to the combination of your project with Eips (e.g., source code must be provided along with any compiled binaries); any portion of your project that does not depend on Eips may be used without adherence to the AGPL.
By contributing to Eips, you agree that your contribution may be used according to the terms of Eips’s license, including the Eips Lesser Network Exception and Eips Peer-to-Peer Exception.
Pronounced /aɪps/ (rhymes with “types”). ↩
98 commits
Rust
97.4%
Shell
1.2%