Zixuan Chen
74138231aa
refactor: remove the use of RleVec<[T; 0]> ( #131 )
2023-10-31 17:54:37 +08:00
Zixuan Chen
bf2385efe0
Refactor: remove old encode method ( #130 )
...
* refactor: remove old encode method
* chore: rm file
* refactor: mv snapshot encode file
2023-10-31 10:36:21 +08:00
Zixuan Chen
2abc302344
chore: add pending test and new_auto_commit
2023-10-31 10:14:09 +08:00
Zixuan Chen
c1d732b57c
Fix event hint error ( #129 )
...
* fix: event hint err
* fix: delete event hint
2023-10-31 10:00:54 +08:00
Zixuan Chen
45490f3370
Perf: reduce mem usage when transaction is large ( #128 )
...
* perf: reduce mem usage when txn is large
* test: add diagnose info for id_to_cursor
* perf: make id span easier to merge
2023-10-30 21:56:33 +08:00
Zixuan Chen
8293347334
Feat: autocommit transaction ( #127 )
...
* feat: auto commit
* fix: make recursive single thread event work again
2023-10-30 18:32:36 +08:00
Zixuan Chen
734b832c00
Fix checkout event ( #126 )
...
* tests: add checkout err tests
* fix: checkout event err when create child
2023-10-30 14:16:50 +08:00
Leon zhao
e01e98411c
feat: movable tree support ( #120 )
...
* feat: tree state
* feat: tree value
* feat: tree handler
* fix: tree diff
* test: fuzz tree
* feat: tree snapshot
* fix: tree default value
* fix: test new node
* fix: tree diff
* fix: tree unresolved value
* fix: tree fuzz
* fix: tree fuzz move
* fix: sort by tree id
* fix: tree diff sorted by lamport
* fix: sort roots before tree converted to string
* fix: rebase main
* fix: tree fuzz
* fix: delete undo
* fix: tree to json children sorted
* fix: diff calculate
* fix: diff cycle move
* fix: tree old parent cache
* feat: cache
* fix: local op add tree cache
* fix: don't add same tree move to cache
* fix: need update cache
* feat: new cache
* bench: add checkout bench
* chore: clean
* fix: apply node uncheck
* perf: lamport bound
* fix: calc old parent
* feat: tree wasm
* fix: change tree diff
* fix: tree diff retreat
* fix: tree diff should not apply when add node
* feat: new tree loro value
* chore: typo
* fix: tree deep value
* fix: snapshot tree index -1
* fix: decode tree snapshot use state
* fix: release state lock when emit event
* fix: tree node meta container
* fix: need set map container when covert to local tree op
* fix: tree value add deleted
* fix: more then one op in a change
* fix: tree fuzz deleted equal
* fix: tree calc min lamport
* feat: tree encoding v2
* doc: movable tree
* fix: test tree meta
* test: remove import bytes check
* refactor: diff of text and map
* refactor: del span
* perf: tree state use deleted cache
* fix: some details
* fix: loro js tree create
* feat: add un exist tree node
* bench: tree depth
* fix: check out should emit event
* 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
* fix: fix merge
* fix: return err apply op
* fix: fix merge
* fix: get map container as tree meta
2023-10-30 11:13:52 +08:00
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
Zixuan Chen
fa1286af59
docs: diff calc special behavior
2023-09-25 16:49:17 +08:00
Leon zhao
b09fc48115
Merge pull request #113 from loro-dev/refator-delete-map
...
refactor: map delete value
2023-09-21 15:59:00 +08:00
leeeon233
d2b8941f06
fix: SnapshotOp map use u32
2023-09-21 08:26:54 +08:00
leeeon233
524ab9dabd
chore: visibility & named
2023-09-21 08:04:22 +08:00
leeeon233
caaaa666ae
chore: add pending bench
2023-09-20 09:24:46 +08:00
leeeon233
05dc62a31c
fix: revert enhanced encoding
2023-09-18 21:42:42 +08:00
leeeon233
a77bf2fcb3
fix: encode enhanced pending changes
2023-09-18 20:36:24 +08:00
leeeon233
c294c61343
fix: op converter
2023-09-18 15:21:38 +08:00
leeeon233
3f3fcc11f3
refactor: map delete value
2023-09-15 13:53:30 +08:00
leeeon233
7b012dec00
fix: empty doc with pending decode snapshot
2023-09-15 11:30:43 +08:00
leeeon233
4a1f4e8647
fix: decode snapshot after pending
2023-09-13 21:23:38 +08:00
leeeon233
80a9d12ccc
feat: pending remote changes, todo snapshot
2023-09-13 15:17:58 +08:00
leeeon233
fdacd62828
feat: pending bk
2023-09-12 21:40:56 +08:00
leeeon233
331dc6c994
feat: LoroValue Binary
2023-09-12 15:57:06 +08:00
leeeon233
eb8a07641f
fix: decode remove unknown
2023-09-12 15:25:45 +08:00
leeeon233
dad768049e
fix: new encode format
2023-09-12 14:11:28 +08:00
leeeon233
99c8529559
feat: remove gc
2023-09-12 14:11:28 +08:00
leeeon233
f1adc7d15d
chore: use columnar 0.3.2
2023-09-11 14:54:54 +08:00
leeeon233
0b64a567ed
fix: columnar iter name
2023-09-08 10:56:51 +08:00
leeeon233
8611509492
perf: snapshot OplogEncoded use iter
2023-09-08 09:17:26 +08:00
leeeon233
a1c3eea4f1
feat: use columnar iterable
2023-09-08 08:21:46 +08:00
leeeon233
5b0f3e3f50
feat: update columnar
2023-09-08 08:21:46 +08:00
Zixuan Chen
1ce5330828
bench: use worst case to bench in encode
2023-09-07 21:42:29 +08:00
Zixuan Chen
be63db444e
Merge branch 'main' into feat-encode-enhance
2023-09-05 17:08:41 +08:00
Zixuan Chen
9be8cad562
test: add more many_actors tests
2023-09-02 23:23:52 +08:00
Zixuan Chen
345b5bbcb9
perf: speedup when there are many peers
2023-09-02 18:19:34 +08:00
Zixuan Chen
4ecd850632
test: add import history data test
2023-08-30 17:27:22 +08:00
Zixuan Chen
1d3cd60873
fix: fix a few import panic
2023-08-30 16:41:04 +08:00
Zixuan Chen
b4b50b369d
refactor: refine internal config
2023-08-30 12:27:23 +08:00
Zixuan Chen
e196e23581
fix: sort change by ord
...
last commit contains error (not found yet)
2023-08-29 20:05:31 +08:00
Zixuan Chen
ca9325f5ed
perf: refine encode size (can be better)
2023-08-29 19:43:35 +08:00
Zixuan Chen
60201989ec
fix: speed up encode
2023-08-29 17:15:41 +08:00
Zixuan Chen
728002daf7
chore: add encode example to analysis perf
2023-08-29 15:19:01 +08:00
Zixuan Chen
f208744ec1
feat: encode/decode v2
2023-08-29 15:13:52 +08:00
Zixuan Chen
5b6cc28f6b
chore: add encode example to analysis perf
2023-08-28 16:16:40 +08:00
Zixuan Chen
902fe38570
chore: fix warnings and format
2023-08-28 09:41:23 +08:00
Zixuan Chen
8b8743e233
chore: fix deno dep
2023-08-16 14:54:05 +08:00
Zixuan Chen
17d1a9ea82
Feat: compressed rle update encode mode ( #107 )
...
* feat: add compressed rle update encode mode
* fix: type err
* chore: update string_cache
* chore: rm needless code
2023-08-16 11:33:55 +08:00
Zixuan Chen
ae730d2b8c
fix: return err when changes should be queued
2023-08-12 23:35:49 +08:00
Zixuan Chen
05f802376e
fix: checkout result err
2023-08-11 21:49:26 +08:00
Zixuan Chen
fd0cc63cb5
refactor: return result when checkout to a version
...
err when the specified version is not found
2023-08-11 09:32:34 +08:00
Zixuan Chen
273c0e9c78
test: add version checkout fuzzing test
2023-08-11 08:14:38 +08:00
Zixuan Chen
299f00d90f
perf: fix a perf regression
2023-08-07 20:14:01 +08:00
Zixuan Chen
addadcdce5
perf: make map diff faster
2023-08-07 15:00:11 +08:00
Zixuan Chen
e15e207cab
fix: diff calc err
2023-08-07 10:43:50 +08:00
Zixuan Chen
c31a4a0239
feat: get timestamp
2023-08-06 15:18:00 +08:00
Zixuan Chen
7d5ee5f6d0
perf: make import remote changes faster
2023-08-06 01:41:22 +08:00
Zixuan Chen
dc5159bf67
perf: speed up op converting
2023-08-06 01:07:08 +08:00
Zixuan Chen
a8b7d65f8a
feat: import without state
2023-08-05 23:29:11 +08:00
Zixuan Chen
1b300fdc65
chore: clear logs
2023-08-05 19:51:08 +08:00
Zixuan Chen
3551bc4e99
fix: changes traveler bug
...
should iter every change between two version, even when
a and b are parallel to each other
2023-08-05 19:47:15 +08:00
Zixuan Chen
7ab8ccff64
refactor: return handler when inserting container
2023-08-05 16:25:31 +08:00
Zixuan Chen
f9764a2d4c
Fix DiffCalculator error when going back in history( #106 )
2023-08-05 16:11:41 +08:00
Zixuan Chen
ccee201641
refactor: better interface
2023-08-05 12:44:31 +08:00
Zixuan Chen
a661b776c4
Allow commit with custom timestamp ( #105 )
2023-08-05 12:43:29 +08:00
Zixuan Chen
b22bd98f6b
feat: make getting child container handler simple ( #104 )
2023-08-05 10:23:14 +08:00
Zixuan Chen
72cc8c6ed5
fix: map version checkout err ( #101 )
2023-08-04 22:41:02 +08:00
Zixuan Chen
640828bf26
fix: should be readonly when doc is in detached mode
2023-08-04 14:45:22 +08:00
Zixuan Chen
db4eb64d42
refactor: oplog_frontiers & state_frontiers
2023-08-04 14:37:42 +08:00
Zixuan Chen
5ee860b74e
chore: use serde 1
2023-08-04 11:09:32 +08:00
Zixuan Chen
08beb9f60b
chore: rm serde requirement in append-only-bytes
2023-08-04 11:03:57 +08:00
Zixuan Chen
c105ff2220
Feat: checkout to target version & use unicode index by default ( #98 )
...
* feat: checkout to frontiers
* feat: record timestamp
* fix: use unicode len by default for text
now "你好" has length of 2 instead of 6
* chore: rm dbg!
2023-08-04 10:45:23 +08:00
Zixuan Chen
1e736df133
Refactor: rm legacy code ( #97 )
...
* refactor: rm legacy code
* chore: rm dead code
* refactor: mv refactored files outside
* refactor: rename files & methods
* chore: rm unused deps
* fix: compact bytes err
* chore: fix ci
2023-07-31 11:49:55 +08:00
Zixuan Chen
88003bdffe
fix: get deep value & throw mismatched context err
2023-07-30 16:30:41 +08:00
Zixuan Chen
c461edd828
refactor: remove utf16 meta in text event
...
we will use utf16 index by default when feature=wasm
2023-07-29 22:24:09 +08:00
Zixuan Chen
15be521777
feat: event & wasm
2023-07-29 02:03:51 +08:00
Zixuan Chen
f63c346e5c
refactor: make text fn explicit in index type
2023-07-28 13:40:08 +08:00
Zixuan Chen
f8d58ec379
refactor: use utf16 index in wasm mode
2023-07-28 13:38:52 +08:00
Zixuan Chen
fbebb5b8e8
feat: recursive emit events
2023-07-26 19:53:55 +08:00
Zixuan Chen
470d23a198
feat: subscribe for container events
2023-07-26 18:56:03 +08:00
Zixuan Chen
1ed8ad05be
perf: reduce shared arena size
...
make it more compact and cache-friendly
2023-07-25 23:06:21 +08:00
Zixuan Chen
ef2de6f368
chore: fix a few warnings
2023-07-25 23:00:42 +08:00
Zixuan Chen
fa13d1d06f
fix: list state err
...
update g-btree to use a get node with Option
return value
2023-07-23 00:11:46 +08:00
Zixuan Chen
b94274d8b9
fix: dead lock on list
2023-07-22 19:27:21 +08:00
Zixuan Chen
aa151a48f5
fix: typo on op -> diff
2023-07-22 19:19:11 +08:00
Zixuan Chen
b5c325b490
feat: event (buggy)
2023-07-22 19:02:22 +08:00
Zixuan Chen
874533e51a
feat: add origin to doc state diff
2023-07-19 21:46:30 +08:00
Zixuan Chen
6abeba6849
refactor: rename *App to *Doc
2023-07-19 21:21:37 +08:00
Zixuan Chen
7f3bd5b0a4
feat: record diff in app state
2023-07-19 21:16:52 +08:00
Zixuan Chen
5ea68ac528
perf(encode): reduce snapshot size
...
it's experimental. need fuzzing
2023-07-19 12:31:49 +08:00
Zixuan Chen
9899a94f43
perf: opt encode/decode speed
2023-07-18 18:24:51 +08:00
Zixuan Chen
ac9a7e0631
perf: reduce snapshot size
2023-07-18 16:25:29 +08:00
Zixuan Chen
5beabc940b
perf: reduce encoding size
2023-07-18 14:39:17 +08:00
Zixuan Chen
9d03fd787f
chore: fix warnings
2023-07-18 10:10:52 +08:00
Zixuan Chen
3d3c54eb92
fix: get lamport by frontiers bug
2023-07-18 01:30:56 +08:00
Zixuan Chen
5a233501cc
perf: speed up import by reducing dag nodes
2023-07-18 01:23:49 +08:00
Zixuan Chen
d03617ca26
feat: add bench
2023-07-17 23:18:18 +08:00
Zixuan Chen
20cf17e00b
bench: refactored text
2023-07-17 21:24:02 +08:00
Zixuan Chen
5f5db10a6d
fix: cache update in list diff calc
2023-07-17 21:02:26 +08:00
Zixuan Chen
0fac770309
fix: a few recursive bugs
2023-07-17 20:30:46 +08:00
Zixuan Chen
16ec59ddee
fix: fix a few recursive_refactored bug
2023-07-17 19:09:18 +08:00
Zixuan Chen
f527de5a2f
fix: fix lamport infer in change encode
...
lamport starts from 0 in the new version
2023-07-17 18:27:10 +08:00
Zixuan Chen
93252c9522
test: recursive fuzz test for refactored
2023-07-17 17:28:07 +08:00
Zixuan Chen
a3488c7088
feat: handlers
2023-07-17 16:04:02 +08:00
Zixuan Chen
ca977fcf39
test: text refactor fuzz
2023-07-17 15:00:40 +08:00
Zixuan Chen
e993f1b155
feat: basic snapshot encoding
2023-07-17 12:27:11 +08:00
Zixuan Chen
6983a2b00c
refactor: mov loro value to loro_common
2023-07-15 00:47:47 +08:00
Zixuan Chen
fc49b4b3b4
refactor: mov important basic types into loro-common
2023-07-14 16:38:53 +08:00
Zixuan Chen
dde0152912
refactor: prepare for snapshot encoding
2023-07-14 16:05:06 +08:00
Zixuan Chen
3771566b9f
refactor: integrate container type into container idx
2023-07-14 12:50:48 +08:00
Zixuan Chen
7cb6691cef
test: update snapshot test
2023-07-12 21:35:06 +08:00
Zixuan Chen
d3f921bae0
refactor: replace latest_lamport with next_lamport
2023-07-12 21:34:56 +08:00
Zixuan Chen
097d86915a
refactor: rm next lamport from app state diff
2023-07-12 21:29:21 +08:00
Zixuan Chen
6d2d28a721
refactor: reduce version conversion a little bit
2023-07-12 21:26:03 +08:00
Zixuan Chen
2a0f842fc5
fix: lamport issue
2023-07-12 18:47:04 +08:00
Zixuan Chen
3638e3d0ed
fix: fix a encode/decode issue
...
exposed by fuzzing test
2023-07-12 18:17:57 +08:00
Zixuan Chen
2d47387882
refactor: txn should consume self after finished
2023-07-12 14:46:48 +08:00
Zixuan Chen
abec22cd22
fix: text sync issues
2023-07-12 12:30:36 +08:00
Zixuan Chen
f83837304e
feat: basic import export pipeline
2023-07-12 03:49:11 +08:00
Zixuan Chen
8ebd41fa3d
feat: connect diff calculator
2023-07-12 00:29:23 +08:00
Zixuan Chen
1f827f944e
feat: basic pipeline for text
2023-07-10 23:17:39 +08:00
Zixuan Chen
a90218f229
chore: fix all warnings
2023-07-10 21:37:30 +08:00
Zixuan Chen
23a212e5f6
chore: fix warnings and rm some dead code
2023-07-10 18:35:31 +08:00
Zixuan Chen
de9a8cb9ad
refactor: rm usage like Arc<LoroValue>
...
because LoroValue itself is cheap to clone now
2023-07-10 18:28:44 +08:00
Zixuan Chen
a90668abca
refactor: make LoroValue cheap to clone
2023-07-10 18:26:49 +08:00
Zixuan Chen
4634f0ddbb
feat: txn apply local op
2023-07-10 18:00:42 +08:00
Zixuan Chen
159cd9127f
refactor: rename remote content to raw op content
2023-07-10 16:54:55 +08:00
Zixuan Chen
f6c7e7a8f4
refactor: rm AppStateDiff
2023-07-10 16:53:56 +08:00
Zixuan Chen
4744431ab7
refactor: move remote to local op convert to arena
2023-07-10 15:58:30 +08:00
Zixuan Chen
508ca4b5c6
refactor: use a new version of txn
2023-07-10 12:06:11 +08:00
Zixuan Chen
bdb0e26b93
refactor: use locks inside arena
2023-07-09 21:22:26 +08:00
Zixuan Chen
bc11f0a6d2
feat: init txn
2023-07-08 00:22:34 +08:00
Zixuan Chen
ba8de055b4
chore: fix warnings
2023-07-07 21:56:35 +08:00
Zixuan Chen
d2c3eead90
feat: list diff calculator
2023-07-07 21:54:47 +08:00
Zixuan Chen
179e67bd8a
refactor: add a new event type for raw text event
2023-07-07 21:40:33 +08:00
Zixuan Chen
e72a97f6b7
chore: map diff calc
2023-07-07 19:12:41 +08:00
Zixuan Chen
cc4e1d02e4
feat: readonly arena
2023-07-07 15:36:19 +08:00
Zixuan Chen
fd588beee2
feat: support txn abort for states
2023-07-05 23:13:39 +08:00
Zixuan Chen
8f6a6e1cc2
feat: convert remote change to local change in oplog
2023-07-05 22:07:45 +08:00
Zixuan Chen
a0a7dc1080
test: fix fuzz test err
2023-07-05 19:08:27 +08:00
Zixuan Chen
bd4060c591
refactor: make remoteOp a borrowed type
2023-07-05 18:20:50 +08:00
Zixuan Chen
b99276ddce
refactor: make local change mergeable
...
when they are not exposed outside
2023-07-05 15:07:05 +08:00
Zixuan Chen
f0f82fb581
refactor: seal change exp impl
2023-07-05 14:43:58 +08:00
Zixuan Chen
336bd1e497
feat: convert frontiers to version vector
2023-07-04 18:25:33 +08:00
Zixuan Chen
4a8ce16ff1
feat: new map diff and map state
2023-07-04 14:31:50 +08:00
Zixuan Chen
b747452ced
refactor: replace containerIdx with ContainerID
...
in refactor module
2023-07-04 12:35:34 +08:00
Zixuan Chen
87887b1b2c
refactor: rename client to peer &
...
use efficient ContainerID repr
2023-07-04 12:33:03 +08:00
Zixuan Chen
38ee1e5a78
refactor: rename LoroValue::Unresolved to Container
2023-07-04 12:10:36 +08:00
Zixuan Chen
2cbe21463c
feat: list & text states
2023-07-04 11:27:09 +08:00
Zixuan Chen
f042f86a92
chore: basic interfaces design
2023-07-03 00:40:05 +08:00
Zixuan Chen
abd3e38253
chore: bk
2023-07-02 23:24:17 +08:00