Commit graph

878 commits

Author SHA1 Message Date
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
Zixuan Chen
2df7429e58 chore: rm debug log 2023-06-29 16:55:03 +08:00
Zixuan Chen
c50294ac22 feat: use text tracker diff 2023-06-29 16:09:42 +08:00
Zixuan Chen
794ed42ea4 chore: bump version 2023-05-11 12:19:47 +08:00
Zixuan Chen
bc09a0489f
feat: add typed versions of getMap and getList to Loro class (#96)
* feat: add typed versions of getMap and getList to Loro class

This commit adds `getTypedMap` and `getTypedList` methods to the `Loro` class, which allow for accessing maps and lists with type information. It also adds corresponding `getTyped`, `insertTyped`, and `setTyped` methods to `LoroMap` and `LoroList`. This makes it easier and safer to work with Loro's data structures.

* chore: bump version

* chore: alpha 1

* feat: add size and length to list and map

* chore: update deno test script
2023-05-11 11:59:48 +08:00
Zixuan Chen
598f6dbc33 release: loro-crdt v0.2.5 2023-04-07 14:29:18 +08:00
Zixuan Chen
0a31b67dd4
Feat: expose frontier & make it comparable (#95)
* refactor: make frontiers a new type

* feat: compare frontiers
2023-04-05 20:31:58 +08:00
Leon zhao
e51d6f8760
Fix: use Transaction to decode/import (#92) 2023-04-04 21:44:41 +08:00
Zixuan Chen
bbcb6f3957
fix: utf16 len fallback to utf8 when unknown (#93) 2023-04-04 17:28:35 +08:00
Zixuan Chen
3e64116621
fix: make text event in wasm use utf16 as index and len (#88)
* feat: utf16 event for wasm (draft, buggy)

* fix: work around the issue of unknown text content

* fix: utf16 err

* fix: compose utf16 meta

* docs: add comments
2023-04-03 20:03:07 +08:00
Zixuan Chen
82b5f8dc90
Perf: speed up utf16 and wasm (#90)
* perf: remove unused transact field

* perf: micro optimization

* bench: fix bench

* bench: add utf16 bench

* chore: refine diagnose

* perf: speedup utf16 lookup

* perf: use better utf16 len counter

* refactor: use js to cast Loro/Transaction

* refactor: map and list use __loro and __txn

* test: configure ci vitest

* chore: ci
2023-04-03 09:29:25 +08:00
Zixuan Chen
b8056614f5 fix: avoid zero len del in text 2023-03-31 10:58:07 +08:00
Zixuan Chen
7f62142db3 chore: bump loro-wasm version 2023-03-28 23:09:05 +08:00
leeeon233
e6a4be5dcf fix: import change slice 2023-03-28 20:09:33 +08:00
Zixuan Chen
abafec9e18 chore: bump versions 2023-03-28 01:05:17 +08:00
leeeon233
0cbf5e2548 fix: lamport order 2023-03-27 09:35:57 +08:00
leeeon233
e6c5cefe54 doc: import pending 2023-03-27 09:35:57 +08:00
leeeon233
d4f786e64a fix: dep is in merged pending change 2023-03-27 09:35:57 +08:00
Zixuan Chen
87ae95ef02 test: add a missing case 2023-03-27 09:35:57 +08:00
leeeon233
ac80775b17 fix: snapshot pending import 2023-03-27 09:35:57 +08:00
leeeon233
9db061ed36 fix: other client pending import (with debug 2023-03-27 09:35:57 +08:00
leeeon233
c34df16dcb feat: pending snapshot 2023-03-27 09:35:57 +08:00
leeeon233
c1a72c3d7e feat: pending import 2023-03-27 09:35:57 +08:00
Zixuan Chen
6df69bd2be feat: add subscribe to containers in wasm 2023-03-25 20:11:45 +08:00
Zixuan Chen
0a421d3931 fix: add event diff test & fix related bugs 2023-03-25 20:11:45 +08:00
Zixuan Chen
49f664dd8f feat: convert event to js & add vitest 2023-03-25 20:11:45 +08:00
Zixuan Chen
f27786fa25 fix: container id should be converted to js string 2023-03-25 20:11:45 +08:00
Zixuan Chen
831ab0f04d Merge branch 'main' into refactor-wasm 2023-03-24 11:59:28 +08:00
Zixuan Chen
be9fe842d7
Merge pull request #84 from loro-dev/refactor-interface
feat: expose methods from loro crate
2023-03-24 11:58:15 +08:00
Zixuan Chen
e01b6954db fix: deno tests 2023-03-24 11:57:28 +08:00
Zixuan Chen
606685d42b chore: bump version 2023-03-24 11:50:10 +08:00
Zixuan Chen
74a7aa6c1a fix: transaction 2023-03-24 11:20:59 +08:00
Zixuan Chen
2f74b13e70 feat: extra pkg loro-crdt to wrap loro-wasm 2023-03-24 10:08:11 +08:00
Zixuan Chen
85d91e10b4 chore: speedup wasm build 2023-03-23 22:19:26 +08:00
Zixuan Chen
b0d7ad88b9 fix: not leaking closure 2023-03-23 21:44:27 +08:00
Zixuan Chen
63ebbe2ddb chore: remove tracing 2023-03-23 21:17:16 +08:00
Zixuan Chen
32378a7188 fix: use promise.then instead of timeout 2023-03-23 21:16:29 +08:00
Zixuan Chen
16e76eaf8e fix: use container id when converting unresolved to jsvalue 2023-03-23 19:19:53 +08:00
Zixuan Chen
94f481e65e fix: settimeout by default in subscription 2023-03-23 19:09:13 +08:00
Zixuan Chen
4c372359e6 fix: use utf16 by default for text in wasm 2023-03-22 23:23:57 +08:00
Zixuan Chen
490a54d559 feat: expose from loro crate 2023-03-21 11:09:12 +08:00
leeeon233
d8f0dfa673 chore: clean the code 2023-03-21 09:47:24 +08:00
leeeon233
99e48b65ae feat: add simple origin 2023-03-20 21:26:36 +08:00
leeeon233
117155cc54 perf: remove compress 2023-03-20 13:55:20 +08:00
leeeon233
25c1f449be fix: DeltaValue trait add length 2023-03-17 16:33:50 +08:00
leeeon233
625e3332da chore: some todo 2023-03-17 11:11:14 +08:00
leeeon233
39a7e49b2e Merge branch 'main' into feat-transaction 2023-03-17 10:20:04 +08:00
leeeon233
ce007295e1 feat: wasm transaction 2023-03-16 17:27:00 +08:00
leeeon233
e6002d7076 bench: observe txn 2023-03-15 20:43:26 +08:00
leeeon233
dd4e7d5ee8 fix: build event when commit 2023-03-15 18:06:20 +08:00
leeeon233
8f4b5f101a fix: remove events when delete container 2023-03-15 15:49:21 +08:00
leeeon233
c4a62bee37 fix: delta compose delete insert 2023-03-15 14:29:05 +08:00
leeeon233
fba6024754 fix: fuzz 2023-03-15 11:52:47 +08:00
leeeon233
e2e7f9cdac refactor: transaction commits immediately 2023-03-15 10:21:43 +08:00
Zixuan Chen
b807064d0a
refactor: rm owning_ref (#80) 2023-03-14 21:02:51 +08:00
leeeon233
41da98ad38 perf: use reduce instead of fold 2023-03-13 22:13:48 +08:00
leeeon233
f165e2594c fix: prelim transaction 2023-03-13 09:41:29 +08:00
leeeon233
87cc3be884 bench: add txn 2023-03-10 18:21:05 +08:00
leeeon233
06637f55d9 perf: remove delta push clone 2023-03-10 18:00:20 +08:00
leeeon233
04dd105d33 fix: remove auto commit 2023-03-10 16:07:07 +08:00
leeeon233
0ff122b68e feat: transaction decode 2023-03-10 14:22:38 +08:00
leeeon233
89c832e2f2 feat: implicit commit 2023-03-10 10:50:05 +08:00
leeeon233
47d1bb603f feat: loro use auto commit transaction 2023-03-09 20:03:29 +08:00
leeeon233
2d316b4414 fix: modify after merging 2023-03-09 10:45:54 +08:00
leeeon233
f6ad5460cb Merge branch 'perf-encode-size' into feat-transaction 2023-03-09 10:45:29 +08:00
leeeon233
dc6926773c fix: snapshot container error due to temp idx 2023-03-08 20:09:51 +08:00
leeeon233
73598c49ad fix: remove checker to container inner 2023-03-07 21:56:16 +08:00
leeeon233
95ad837a79 fix: container length is inconsistent when fuzzing caused by decode 2023-03-07 21:33:23 +08:00
leeeon233
b6e9983eb7 fix: map lamport order 2023-03-07 17:06:10 +08:00
leeeon233
4f5f809bb6 fix: remove temp, add checker
fix: map lamport order
2023-03-07 17:05:52 +08:00
leeeon233
707fdc5b55 test: add txn fuzz 2023-03-06 21:49:47 +08:00
leeeon233
d1d242578f fix: op counter 2023-03-06 21:46:36 +08:00
leeeon233
9fefd75fb6 feat: use ContainerTrait
fix: op counter
2023-03-06 21:45:58 +08:00
leeeon233
6fd81c8d20 fix: use split_off to take n 2023-03-06 14:52:30 +08:00
leeeon233
3a0b8d9d58 fix: remove delta clone 2023-03-06 12:43:52 +08:00
leeeon233
449a77254d fix: use Option as delta meta 2023-03-05 17:38:26 +08:00
leeeon233
344bbb1e34 fix: pass delta test 2023-03-05 17:11:48 +08:00
leeeon233
0f2333b182 feat: container checker 2023-03-04 17:34:40 +08:00
leeeon233
4bb3ea8b1b feat: use the same api for container and temp container 2023-03-03 17:10:55 +08:00
leeeon233
1979c23125 fix: transaction op apply 2023-03-03 09:14:24 +08:00
leeeon233
398ddcb25a fix: map fuzz diff delete LoroValue::Null 2023-03-02 20:55:06 +08:00
leeeon233
d2fa09cd00 test: fuzz use transaction 2023-03-02 19:44:46 +08:00
leeeon233
4652d839ec feat: map transaction 2023-03-02 17:54:57 +08:00
leeeon233
46e2c5a960 feat: text transaction 2023-03-02 10:37:50 +08:00
leeeon233
d144906502 fix: list use delta as op 2023-03-01 21:37:58 +08:00
leeeon233
9544e27be4 feat: add delta compose 2023-03-01 14:12:05 +08:00
leeeon233
3c9818ef82 feat: impl list map text transaction 2023-02-27 20:55:52 +08:00
leeeon233
47b9b34818 feat: init list container transaction 2023-02-27 13:32:33 +08:00
Zixuan Chen
dbb19bc2e6 bench: fix decode bench 2023-02-22 16:54:13 +08:00
leeeon233
5b22a1e9aa fix: encode use dep_on_self
Co-authored-by: Zixuan Chen <me@zxch3n.com>
2023-02-22 14:10:21 +08:00
leeeon233
0328c11a8e chore: real time 2023-02-20 22:01:40 +08:00
leeeon233
037d17cd08 bench: sync 2000 times 2023-02-20 20:02:38 +08:00
leeeon233
379c3201f5 bench: encode without compress 2023-02-20 19:16:02 +08:00
leeeon233
af6342a52d fix: snapshot unknown and change value to i64 2023-02-20 17:19:25 +08:00
leeeon233
b8e27dc011 fix: dep counter 2023-02-20 10:24:56 +08:00
leeeon233
697f9708b9 perf: remove the dep with same client_id 2023-02-18 19:54:58 +08:00
leeeon233
3a75b7005c test: reduce doc size init 2023-02-18 18:06:23 +08:00
leeeon233
e4b6c5b96c fix: add err when updates cannot be apply 2023-02-18 18:03:05 +08:00
leeeon233
04cec6048f fix: rm snapshot start counter 2023-02-18 18:03:05 +08:00
leeeon233
f0266f015f fix: lookup change 2023-02-18 18:03:05 +08:00
Leonzhao
1743f4af42 fix: some suggestions about rm lamport
Co-authored-by: Zixuan Chen <remch183@outlook.com>
2023-02-18 18:03:05 +08:00
leeeon233
9dc373048d chore: add value2 comment snapshot 2023-02-18 18:03:05 +08:00
leeeon233
d87b3b960d fix: remove lamport from snapshot 2023-02-18 18:03:05 +08:00
leeeon233
7c8aa72969 fix: opt offset [lamport] 2023-02-18 18:03:05 +08:00
leeeon233
033916c532 fix: lamport remove sort 2023-02-18 18:03:05 +08:00
leeeon233
e4189785ea fix: calculate lamport by deps 2023-02-18 18:03:05 +08:00
leeeon233
52dd09db2a fix: rleUpdates lamport calculate 2023-02-18 18:03:05 +08:00
leeeon233
ccfa3ee63d fix: remove counter & lamport from snapshot 2023-02-18 18:03:05 +08:00
leeeon233
ea921e4c8f fix: remove counter & lamport from RleUpdates encoding 2023-02-18 18:03:05 +08:00
leeeon233
bfeed8fb2e fix: encoding version use u8 2023-02-18 18:03:05 +08:00
leeeon233
7ffac80215 fix: snapshot load diff 2023-02-16 11:23:14 +08:00
leeeon233
5b6f864479 feat: init nodejs bindgen 2023-02-16 11:22:50 +08:00
Zixuan Chen
1002c9cca5
fix: encode_from no compression by default (#77) 2023-02-09 20:43:34 +08:00
Zixuan Chen
11b16e85cd docs: add comment for last&end 2023-02-09 16:30:22 +08:00
leeeon233
e048224263 fix: client idx use Rle
Revert "fix: client idx use Rle"

This reverts commit 77fdfd2a316a43bc515f6165ba1cfe53a83f4867.

fix: client idx use Rle
2023-02-07 11:40:47 +08:00
leeeon233
8545a0aa75 fix: unsubscribe 2023-02-07 11:40:47 +08:00
leeeon233
189ea685eb refactor: event with option, add once subscribe 2023-02-07 11:40:47 +08:00
leeeon233
e402850440 feat: hierarchy children & parent 2023-02-07 11:40:47 +08:00
leeeon233
13becdb3f3 feat: container iter 2023-02-07 11:40:47 +08:00
leeeon233
5743f8d989 feat: list push_front 2023-02-07 11:40:47 +08:00
leeeon233
b15602307e feat: change cfg api 2023-02-07 11:40:47 +08:00
leeeon233
e603a42f28 chore: clippy 2023-02-07 11:40:47 +08:00
Zixuan Chen
9d31605bde fix: cursor get_sliced should have len > 0 2023-01-30 18:04:57 +08:00
leeeon233
5bcaf4c58a chore: add assert 2023-01-29 19:05:03 +08:00
leeeon233
00dbf0622d feat: text utf16 2023-01-29 19:05:03 +08:00
leeeon233
271250ba05 feat: add java bindgen 2023-01-29 17:48:37 +08:00
leeeon233
8f739178e7 feat: add go bindgen 2023-01-29 17:48:37 +08:00
leeeon233
83972746a6 feat: add python bingen 2023-01-29 17:48:37 +08:00
leeeon233
c10b1237e0 chore: rebase main 2023-01-29 17:48:37 +08:00
leeeon233
c56d5327da chore: add readme.md 2023-01-29 17:48:37 +08:00
leeeon233
95309db710 feat: impl C ffi 2023-01-29 17:48:37 +08:00
leeeon233
a26d4b0122 feat: init ffi 2023-01-29 17:48:37 +08:00
leeeon233
b5880f0b66 feat: add Prelim struct 2023-01-27 11:11:28 +08:00
leeeon233
b30dee1386 feat: add contains 2023-01-27 11:11:28 +08:00
leeeon233
99278b1e22 feat: add push to List 2023-01-27 11:11:28 +08:00
leeeon233
43cb9cc6db feat: add prelim struct 2023-01-27 11:11:28 +08:00
Zixuan Chen
83587c4d81 refactor: update fuzz dep 2023-01-16 20:08:43 +08:00
Zixuan Chen
d0e83076ee refactor: fix bench type err 2023-01-16 20:08:43 +08:00