Skip to content

Latest commit

 

History

History
138 lines (107 loc) · 7 KB

algs-text-rope.md

File metadata and controls

138 lines (107 loc) · 7 KB
title tags created modified
algs-text-rope
data-structure
editor
rope
string
text
2023-01-12 11:32:47 UTC
2023-12-19 19:28:51 UTC

algs-text-rope

guide

  • 没必要执着于rope结合crdt的实现

    • rope操作文本的api基本类似于字符串op操作
    • 参考字符串op如何与crdt实现binding可以很容易实现rope与crdt的binding
  • Rope理论与实践 for Java String

rope-impl

  • https://vivaxy.github.io/examples/algorithms/rope/implement-1/index.js

  • https://github.com/josephg/jumprope /js

    • Fast string editing in Javascript using skip lists
    • Ropes have insertion and deletion time of O(|s| * log(N)) where |s| is the length of the inserted / deleted region N is the length of the string
  • https://github.com/huntwj/rope-ts /ts

    • implementation of the Rope data type
  • https://github.com/Conaclos/cow-list /apache2/202206/ts/提供了rope实现的示例

    • Cow List provides a Copy-On-Write iterable list that supports logarithmic searches.
    • It provides also a mutable iterable List with versioning capabilities.
    • Cow List naively supports lengthy values (objects with a length property).
      • This makes Cow List a perfect fit to implement a rope.
    • 👉🏻 I wished to have a generic building block to implement Dotted LogootSplit.
      • Dotted LogootSplit is a replicated data structure designed for collaborative editing.
      • The data structure combines a search tree and a rope.
      • For now, Cow List uses a partially persistent AVL tree.
  • https://github.com/marijnh/rope-sequence /MIT/202305/js/prosemirror

    • This module implements a single data type, RopeSequence, which is a persistent sequence type implemented as a loosely-balanced rope.
    • It supports appending, prepending, and slicing without doing a full copy.
    • Random access is somewhat more expensive than in an array (logarithmic, with some overhead), but should still be relatively fast.
  • https://github.com/linkdotnet/ts-stringoperations /ts

    • Implementation of some known string algorithms and data structures like: Rope, Trie, Knuth Morris Pratt, Boyer Moore, Levenshtein
  • https://github.com/component/rope /js

    • an implementation of the rope data structure in JavaScript.

rope-rust

rope-crdt

text/string-data-structure

blogs

blogs-vendors

more-blog