#crdt #local-first #collaborative-editing

loro-rle

loro 的一个内部库,用于存储和操作运行长度编码数据。请勿直接使用。

7 个版本 (重大变更)

0.16.2 2024年5月29日
0.15.4 2024年5月16日
0.5.1 2024年5月6日
0.5.0 2024年4月29日
0.1.0 2023年11月28日

数据结构 中排名第 818

Download history 4/week @ 2024-04-20 167/week @ 2024-04-27 167/week @ 2024-05-04 197/week @ 2024-05-11 84/week @ 2024-05-18 215/week @ 2024-05-25 73/week @ 2024-06-01 180/week @ 2024-06-08 104/week @ 2024-06-15 37/week @ 2024-06-22 2/week @ 2024-06-29 144/week @ 2024-07-06 74/week @ 2024-07-13 21/week @ 2024-07-20 117/week @ 2024-07-27 73/week @ 2024-08-03

每月下载量 301
4 仓库中使用(直接使用 2 个)

MIT 许可证

31KB
898

运行长度编码库。

有许多可合并的类型。通过合并它们,我们可以得到数据的一个更紧凑的表示。例如,在许多情况下,[0..5, 5..10] 可以合并为 0..10

RleVec

RleVec 是一个可以使用运行长度编码进行压缩的向量。

一个 T 值可以与其相邻的值合并。当我们推送新元素时,新值可以与数组中的最后一个元素合并。每个值都有一个长度,因此有两种类型的索引

  1. (合并) 它指的是合并元素的索引。
  2. (原子) 实质元素的索引。它指的是原子元素的索引。

默认情况下,我们在 RleVec 中使用原子索引。

  • len() 返回数组中原子元素的数量。
  • get(index) 返回索引处的原子元素。
  • slice(from, to) 返回从索引 from 到索引 to 的原子元素切片。

依赖项

~0.9–1.4MB
~31K SLoC