loro/crates/loro-internal/Cargo.toml
Zixuan Chen d942e3d7a2
Feat: Peritext-like rich text support (#123)
* feat: richtext wip

* feat: add insert to style range map wip

* feat: richtext state

* fix: fix style state inserting and style map

* fix: tiny vec merge err

* fix: comment err

* refactor: use new generic-btree & refine impl

* feat: fugue tracker

* feat: tracker

* feat: tracker

* fix: fix a few err in impl

* feat: init richtext content state

* feat: refactor arena

* feat: extract anchor_type info out of style flag

* refactor: state apply op more efficiently
we can now reuse the repr in state and op

* fix: new clippy errors

* refactor: use state chunk as delta item

* refactor: use two op to insert style start and style end

* feat: diff calc

* feat: handler

* fix: tracker checkout err

* fix: pass basic richtext handler tests

* fix: pass handler basic marking tests

* fix: pass all peritext criteria

* feat: snapshot encoding for richtext init

* refactor: replace Text with Richtext

* refacotr: rm text code

* fix: richtext checkout err

* refactor: diff of text and map

* refactor: del span

* refactor: event

* fix: fuzz err

* fix: pass all tests

* fix: fuzz err

* fix: list child cache err

* chore: rm debug code

* fix: encode enhanced err

* fix: encode enchanced

* fix: fix several richtext issue

* fix: richtext anchor err

* chore: rm debug code

* fix: richtext fuzz err

* feat: speedup text snapshot decode

* perf: optimize snapshot encoding

* perf: speed up decode & insert

* fix: fugue span merge err

* perf: speedup delete & id cursor map

* fix: fugue merge err

* chore: update utils

* perf: speedup text insert / del

* fix: cursor cache

* perf: reduce conversion by introducing InsertText

* perf: speed up by refined cursor cache

* chore: update gbtree dep

* refactor(wasm): use quill delta format

* chore: fix warnings
2023-10-29 14:02:13 +08:00

85 lines
2.3 KiB
TOML

[package]
name = "loro-internal"
version = "0.1.0"
edition = "2021"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[dependencies]
string_cache = "0.8.7"
rle = { path = "../rle" }
loro-preload = { path = "../loro-preload" }
loro-common = { path = "../loro-common" }
smallvec = { version = "1.8.0", features = ["serde"] }
postcard = "1"
fxhash = "0.2.1"
serde = { version = "1", features = ["derive"] }
thiserror = "1"
enum-as-inner = "0.5.1"
num = "0.4.0"
crdt-list = { version = "0.4.0" }
rand = { version = "0.8.5", optional = true }
arbitrary = { version = "1", optional = true }
tabled = { version = "0.10.0", optional = true }
wasm-bindgen = { version = "0.2.83", optional = true }
serde-wasm-bindgen = { version = "0.5.0", optional = true }
js-sys = { version = "0.3.60", optional = true }
serde_json = { version = "1" }
arref = "0.1.0"
debug-log = { version = "0.1.4", features = [] }
serde_columnar = { version = "0.3.2" }
tracing = { version = "0.1.37" }
append-only-bytes = { version = "0.1.12", features = ["u32_range"] }
itertools = "0.11.0"
enum_dispatch = "0.3.11"
im = "15.1.0"
jumprope = { version = "1.1.2", features = ["wchar_conversion"] }
generic-btree = { version = "0.8.0" }
miniz_oxide = "0.7.1"
getrandom = "0.2.10"
zerovec = { version = "0.9.4", features = ["serde", "derive"] }
once_cell = "1.18.0"
[dev-dependencies]
serde_json = "1.0.87"
dhat = "0.3.1"
rand = { version = "0.8.5" }
proptest = "1.0.0"
proptest-derive = "0.3.0"
static_assertions = "1.1.0"
tabled = "0.10.0"
color-backtrace = { version = "0.5" }
ctor = "0.1.23"
criterion = "0.4.0"
flate2 = "1.0.24"
arbtest = "0.2.0"
bench-utils = { path = "../bench-utils" }
# See https://matklad.github.io/2021/02/27/delete-cargo-integration-tests.html
[lib]
doctest = false
bench = false
[features]
default = []
compress = ["serde_columnar/compress"]
# "wasm" will use utf-16 index by default when using text related stuff; But it'll use utf-8 encoding internally.
wasm = ["wasm-bindgen", "js-sys", "serde-wasm-bindgen", "loro-common/wasm"]
# whether to use list slice instead of raw str in text container
test_utils = ["crdt-list/fuzzing", "rand", "arbitrary", "tabled"]
[[bench]]
name = "text_r"
harness = false
[[bench]]
name = "list"
harness = false
[[bench]]
name = "encode"
harness = false
[[bench]]
name = "pending"
harness = false