Commit graph

311 commits

Author SHA1 Message Date
Zixuan Chen
bc27a47531
feat: stabilizing encoding (#219)
This PR implements a new encode schema that is more extendible and more compact. It’s also simpler and takes less binary size and maintaining effort. It is inspired by the [Automerge Encoding Format](https://automerge.org/automerge-binary-format-spec/).

The main motivation is the extensibility. When we integrate a new CRDT algorithm, we don’t want to make a breaking change to the encoding or keep multiple versions of the encoding schema in the code, as it will make our WASM size much larger. We need a stable and extendible encoding schema for our v1.0 version.

This PR also exposes the ops that compose the current container state. For example, now you can make a query about which operation a certain character quickly. This behavior is required in the new snapshot encoding, so it’s included in this PR.

# Encoding Schema

## Header

The header has 22 bytes.

- (0-4 bytes) Magic Bytes: The encoding starts with `loro` as magic bytes.
- (4-20 bytes) Checksum: MD5 checksum of the encoded data, including the header starting from 20th bytes. The checksum is encoded as a 16-byte array. The `checksum` and `magic bytes` fields are trimmed when calculating the checksum.
- (20-21 bytes) Encoding Method (2 bytes, big endian): Multiple encoding methods are available for a specific encoding version.

## Encode Mode: Updates

In this approach, only ops, specifically their historical record, are encoded, while document states are excluded.

Like Automerge's format, we employ columnar encoding for operations and changes.

Previously, operations were ordered by their Operation ID (OpId) before columnar encoding. However, sorting operations based on their respective containers initially enhance compression potential.

## Encode Mode: Snapshot

This mode simultaneously captures document state and historical data. Upon importing a snapshot into a new document, initialization occurs directly from the snapshot, bypassing the need for CRDT-based recalculations.

Unlike previous snapshot encoding methods, the current binary output in snapshot mode is compatible with the updates mode. This enhances the efficiency of importing snapshots into non-empty documents, where initialization via snapshot is infeasible. 

Additionally, when feasible, we leverage the sequence of operations to construct state snapshots. In CRDTs, deducing the specific ops constituting the current container state is feasible. These ops are tagged in relation to the container, facilitating direct state reconstruction from them. This approach, pioneered by Automerge, significantly improves compression efficiency.
2024-01-02 17:03:24 +08:00
Zixuan Chen
9477717e3e
chore: bump loro-crdt versions to v0.7.1 2023-12-26 18:01:14 +08:00
Zixuan Chen
c2877e8468
chore: bump version 2023-12-14 10:38:54 +08:00
Leon zhao
442f2561a1
Remove prelim feature (#215)
* chore: remove prelim temporarily
2023-12-13 10:25:00 +08:00
Zixuan Chen
546cadf26c
refactor(wasm): invoke setPanicHook when starting 2023-12-08 16:58:41 +08:00
Zixuan Chen
ce36f8adbd
chore: bump version 2023-12-07 15:27:22 +08:00
Zixuan Chen
b689f5b1cd
chore: bump version 2023-12-06 23:39:55 +08:00
Zixuan Chen
3c735390e9
chore: put tasks into package.json when possible 2023-12-05 17:42:25 +08:00
Zixuan Chen
bbf8acd767
chore: bump version 2023-12-05 13:58:00 +08:00
Zixuan Chen
e4814aa627
chore: init changesets 2023-12-05 13:38:09 +08:00
Leon zhao
47fea50dda
Refactor: use ValueOrContainer for diff event (#202)
* feat: use resolved diff as event

* feat: wasm ValueOrContainer event

* fix: cargo fix

* fix: avoid state clone

* chore: add resolve event bench

* test: add handler in event test

* refactor: use resolved as external diff

* chore: cargo fix

* fix: typescript loro value type

* fix: use Arc::new_cyclic

* refactor: bring back sub container
2023-12-05 11:57:41 +08:00
Zixuan Chen
bf1a792933
refactor: only need shared ref on loro doc now (#203) 2023-12-03 14:54:45 +08:00
Zixuan Chen
e342dfc98a
chore: wasm-snip init 2023-11-29 15:07:39 +08:00
Zixuan Chen
cccb4f3957
perf(wasm): reduce wasm size (#198) 2023-11-29 13:59:39 +08:00
Zixuan Chen
0d2314cda1
docs: add docs to rust api 2023-11-28 22:17:40 +08:00
Leon zhao
afc4bfaf62
feat: tree rust api (#194) 2023-11-28 21:32:04 +08:00
Zixuan Chen
564dde7703
chore: publish mvp rust api 2023-11-28 21:29:11 +08:00
Zixuan Chen
2ad7202e05
Feat-rust-api (#193) 2023-11-28 16:22:43 +08:00
Zixuan Chen
8b6f49f3b3
chore(release): 0.5.0 2023-11-27 17:56:04 +08:00
Zixuan Chen
88218c10bd
(WASM )Refactor wasm interfaces on List and Map (#192)
* refactor: refine wasm interfaces

* docs: update wasm doc
2023-11-27 17:53:02 +08:00
Zixuan Chen
e23ef4362d
fix: keep strong ref to doc in handlers #190 (#191) 2023-11-27 14:09:04 +08:00
Ikko Eltociear Ashimine
83b0e8cc7f
fix: typo in lib.rs (#176)
verison -> version
2023-11-22 10:05:54 +08:00
Leon zhao
c04dc344f5
fix: deno dirname in windows (#183) 2023-11-21 21:38:59 +08:00
Zixuan Chen
214418d643
refactor: rm unused code 2023-11-21 21:22:09 +08:00
Zixuan Chen
3cd79e9b5d
chore(wasm): deno build err 2023-11-21 00:34:20 +08:00
Zixuan Chen
b940214985
fix: from snapshot should enable auto commit 2023-11-17 23:05:20 +08:00
Zixuan Chen
ed5324b506
chore(release): 0.4.3 2023-11-16 22:26:41 +08:00
Zixuan Chen
a484484934
chore(release): 0.4.2 2023-11-16 21:53:04 +08:00
Zixuan Chen
1ff1505933
feat: get sub container directly when getting value (#175) 2023-11-16 21:46:57 +08:00
Zixuan Chen
8957b98236
refactor: emit event after a micro task 2023-11-16 21:04:31 +08:00
Zixuan Chen
40d6de3146
Add map methods for getting keys, values, and entries (#173) 2023-11-16 18:40:51 +08:00
Bryan
c4b9cb4b2b
fix: loro-wasm typo (#171) 2023-11-14 23:02:52 +08:00
Zixuan Chen
e54d2ac21b
feat(wasm): add event id 2023-11-13 13:06:37 +08:00
leeeon233
c4b753dfd8 chore: add license 2023-11-12 23:23:12 +08:00
Zixuan Chen
9a6a4e61f1
chore: add build script to loro-wasm 2023-11-12 21:14:21 +08:00
Zixuan Chen
38ad7fbe1b
chore(release): 0.4.1 2023-11-12 21:10:24 +08:00
Zixuan Chen
48611c5f15
fix: wasm change peerid should be bigint 2023-11-12 20:36:38 +08:00
Zixuan Chen
e871a6c438
chore: bump loro-wasm loro-crdt version 2023-11-10 20:41:11 +08:00
Leon zhao
7d2826cfe9
Doc: loro-crdt documents in comments (#165)
* doc: wasm

* doc: add wasm example

* doc: typedoc

* fix: merge

* fix: dep

* fix

---------

Co-authored-by: Zixuan Chen <remch183@outlook.com>
2023-11-10 20:30:54 +08:00
Zixuan Chen
fdd24bd836
feat: add fromCheckout to wasm 2023-11-08 16:22:21 +08:00
Zixuan Chen
66d74c1e74
feat(wasm): get deep value 2023-11-07 23:59:44 +08:00
Zixuan Chen
532eee09a4
fix: return Err when index out of bound 2023-11-07 22:48:53 +08:00
Zixuan Chen
83ae5930bc
Fix list get method (#158) 2023-11-07 19:48:16 +08:00
Zixuan Chen
7ccfd1e91d
feat: expose version and change inspect api to wasm (#156) 2023-11-05 16:06:34 +08:00
Zixuan Chen
8bd953e396
refactor: extract text chunk (#153) 2023-11-04 20:03:43 +08:00
Zixuan Chen
5b65963104
fix: imported changes were not mergeable (#147)
* fix: imported changes were not mergeable
now the small encoding size is supported in example

* fix: stupid err in richtext checkout

* fix: rle oplog encode err
- support pending changes
- start counters were wrong
2023-11-04 12:23:28 +08:00
Zixuan Chen
200a6dd39a
fix: warnings 2023-11-03 22:26:49 +08:00
Zixuan Chen
7a19b49acb
Add richtext example using Quill (#145)
* feat: richtext example init

* fix: pass richtext event delta consistency check

* chore: debug history
2023-11-03 16:59:27 +08:00
Zixuan Chen
da16b8a99d
refactor: use better repr for container id (#144) 2023-11-02 17:13:08 +08:00
Zixuan Chen
a40b5c6e4a
feat: support richtext in wasm & mark text with arbitrary value (#142)
- Support mark text with custom value [LORO-299] Allow users to mark text with custom value #139
- Expose richtext in wasm
2023-11-02 14:20:34 +08:00
Zixuan Chen
95e6130d93
Fix: richtext event (#138)
Support rich text event. Now it will emit the delta event correctly in the Quill Delta format.
2023-11-01 20:02:05 +08:00
Zixuan Chen
e1ab03f30f
feat: create doc from snapshot (#136) 2023-10-31 19:02:52 +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
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
leeeon233
5c0d8b74f4 fix: nodejs patch 2023-09-12 15:57:06 +08:00
Zixuan Chen
345b5bbcb9
perf: speedup when there are many peers 2023-09-02 18:19:34 +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
7ab8ccff64 refactor: return handler when inserting container 2023-08-05 16:25:31 +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
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
86057adb05 fix: make events JsValue
this can avoid memory leak when FinalizationRegistry is unavailable
2023-07-30 20:33:46 +08:00
Zixuan Chen
83ee956c8b chore: mark todo 2023-07-30 19:08:32 +08:00
Zixuan Chen
41556dcb78 refactor: rm needless refcell 2023-07-30 19:06:22 +08:00
Zixuan Chen
6860132ada refactor: call events subs without await now 2023-07-30 17:08:49 +08:00
Zixuan Chen
88003bdffe fix: get deep value & throw mismatched context err 2023-07-30 16:30:41 +08:00
Zixuan Chen
15be521777 feat: event & wasm 2023-07-29 02:03:51 +08:00
Zixuan Chen
a90668abca refactor: make LoroValue cheap to clone 2023-07-10 18:26:49 +08:00
Zixuan Chen
f6c7e7a8f4 refactor: rm AppStateDiff 2023-07-10 16:53:56 +08:00
Zixuan Chen
f0f82fb581 refactor: seal change exp impl 2023-07-05 14:43:58 +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
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
7f62142db3 chore: bump loro-wasm version 2023-03-28 23:09:05 +08:00
Zixuan Chen
abafec9e18 chore: bump versions 2023-03-28 01:05:17 +08:00
Zixuan Chen
6df69bd2be feat: add subscribe to containers in wasm 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
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
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
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
ce007295e1 feat: wasm transaction 2023-03-16 17:27:00 +08:00
leeeon233
189ea685eb refactor: event with option, add once subscribe 2023-02-07 11:40:47 +08:00
Zixuan Chen
d0e83076ee refactor: fix bench type err 2023-01-16 20:08:43 +08:00
Zixuan Chen
18d32384a5 refactor: move loro-core to loro-internal 2023-01-16 20:08:43 +08:00
Zixuan Chen
c56653c3c8 refactor: refine encode interface (buggy)
Co-authored-by: Leonzhao <leeeon233@gmail.com>
2023-01-16 18:39:08 +08:00
leeeon233
a04d0794aa fix: avoid Unresolved as PrelimValue 2023-01-16 18:38:55 +08:00
Zixuan Chen
625771c37d
fix: decode batch (#54) 2023-01-06 21:14:29 +08:00
Zixuan Chen
a03c68a993
fix: make LoroCore: Send + Sync (#61) 2023-01-06 21:03:11 +08:00
leeeon233
6a02ce1568 fix: wasm loro class inner mutability 2023-01-06 12:20:00 +08:00
leeeon233
38ccf36b9d fix: test 2023-01-03 17:36:17 +08:00
leeeon233
953a4613c6 fix: nesting notify 2023-01-03 17:36:17 +08:00
leeeon233
80640ca4e1 fix: wasm hierarchy notify dead lock 2023-01-03 17:36:17 +08:00
leeeon233
647352aa2a chore: cargo fix 2022-12-30 11:54:22 +08:00
leeeon233
065e646a7e refactor: use Weak in container 2022-12-30 11:54:22 +08:00
Zixuan Chen
fd65b1504c Merge branch 'main' into perf-wasm-analysis 2022-12-27 12:57:16 +08:00
leeeon233
4748e1d38c fix: decode hierarchy for snapshot mode
update columnar version, reduce compression time
2022-12-19 18:07:24 +08:00
leeeon233
b0b1fddef3 refactor: unify encode api 2022-12-19 18:07:24 +08:00
Zixuan Chen
c6f9561de3 chore(ci): fix ci 2022-12-18 21:05:04 +08:00
Zixuan Chen
4a0b8e52e8 Merge remote-tracking branch 'origin/main' into perf-wasm-analysis 2022-12-18 20:59:57 +08:00
leeeon233
4cfdbff768 chore: rebase 2022-12-13 23:06:21 +08:00
Zixuan Chen
035d03c89e chore(wasm): fix build wasm script 2022-12-13 16:33:24 +08:00
Zixuan Chen
95daf02a29 refactor: rename vv to vv_cloned to emphasize cost 2022-12-13 01:39:57 +08:00
Zixuan Chen
313b1cc8c0 bench: add wasm bench to web test 2022-12-12 13:44:49 +08:00
Zixuan Chen
2903a47ddb chore(ci): fix build script in ci 2022-12-09 12:03:45 +08:00
Zixuan Chen
85f0d98385 chore(wasm): fix wasm build & test scripts 2022-12-09 11:33:39 +08:00
Zixuan Chen
b74ab34f79 chore(wasm): make build parallel 2022-12-09 10:46:55 +08:00
Zixuan Chen
f9f556f822 fix: add local info 2022-12-09 10:46:55 +08:00
Zixuan Chen
a24e284fba fix: hierarchy notify 2022-12-09 10:46:55 +08:00
Zixuan Chen
db29178982 fix: make subscription work 2022-12-09 10:46:55 +08:00
Zixuan Chen
9a3194edef chore(wasm): change the build methods 2022-12-09 10:46:55 +08:00
Zixuan Chen
572fe857a0 feat(wasm): root subscribe & unsubscribe 2022-12-09 10:46:55 +08:00
Zixuan Chen
b98c22570d fix: get container by id err 2022-12-09 10:46:55 +08:00
Zixuan Chen
2db272e857 chore(wasm): wasm build cfg 2022-12-09 10:46:47 +08:00
Zixuan Chen
0cd38270f9 bench(wasm): wasm bench
bench(wasm): add snapshot bench
2022-12-09 10:46:36 +08:00
Zixuan Chen
b1738e34a9 fix: to json result 2022-12-09 10:46:30 +08:00
Zixuan Chen
91e7b3ac87 feat: wasm encode decode basic 2022-12-09 10:46:30 +08:00
Zixuan Chen
f14905d562 feat: init encoding and build pipeline for wasm 2022-12-09 10:46:30 +08:00
Zixuan Chen
aeb935455e chore: doc bk 2022-11-23 22:03:33 +08:00
Zixuan Chen
c04989d046 ci: speedup wasm-pack install 2022-11-23 19:59:57 +08:00
leeeon233
ca96b294d4 chore: wasm pack ci 2022-11-23 19:49:39 +08:00
leeeon233
2591ed3cc4 chore: typo 2022-11-23 19:49:39 +08:00
leeeon233
fcfc8fd6b9 refactor: prelim trait 2022-11-23 19:49:39 +08:00
leeeon233
cc129ee753 feat: expose ContainerID 2022-11-23 19:49:39 +08:00
leeeon233
4194c79fe7 fix: prelim compatible with pool 2022-11-23 19:49:39 +08:00
leeeon233
bc8235ff47 feat: add prelim
Co-authored-by: Zixuan Chen <me@zxch3n.com>
2022-11-23 19:49:39 +08:00
leeeon233
e124bbbec1 fix: wasm interface 2022-11-23 19:49:39 +08:00
leeeon233
71fd00418e test: add wasm test 2022-11-23 19:49:39 +08:00
leeeon233
973486067a fix: wasm add client id check 2022-11-23 19:49:39 +08:00
leeeon233
42ded24721 chore: add panic hook 2022-11-23 19:49:39 +08:00
leeeon233
47266773ba feat: add recursive wasm 2022-11-23 19:49:39 +08:00
Zixuan Chen
7a6e50931d chore: replace justfile with deno task 2022-11-21 12:50:15 +08:00
Zixuan Chen
e5c022b204 refactor: remove unused logics 2022-11-18 16:31:00 +08:00
Zixuan Chen
0c7a7af0fd refactor: remove insert value
simplify code and only use loro value
2022-11-12 00:30:07 +08:00
Zixuan Chen
0d0603d75f feat: get value deep 2022-11-11 22:26:06 +08:00
Zixuan Chen
d818cd1ca8 refactor: use Text and Map as exposed interfaces
Co-authored-by: Leonzhao <leeeon233@gmail.com>
2022-11-11 15:23:22 +08:00
Zixuan Chen
a858c10588 refactor: use container trait 2022-11-11 11:41:31 +08:00
Zixuan Chen
1f2650a5a2 refactor: rename container mng to registry 2022-11-11 11:15:06 +08:00
Zixuan Chen
8616f4d3b0 chore: cargo fix 2022-11-08 23:51:31 +08:00
Zixuan Chen
3c7e939020 fix: wasm type convert err 2022-11-08 23:43:33 +08:00
Zixuan Chen
3d2ea6479a feat: recursive map type; but perf becomes worse
random text edit 2 sites, run time + 30%
need to find a way to fix this
2022-11-08 23:35:32 +08:00
Zixuan Chen
54ed394640 chore: add basic web test code 2022-11-07 23:37:10 +08:00
Zixuan Chen
72e52d8925 chore: cargo fix 2022-11-01 17:53:57 +08:00
Zixuan Chen
0a832194d8 refactor: remove slice feature
enable by default
2022-11-01 17:51:17 +08:00
Zixuan Chen
9d48e5df88 refactor: fix type error 2022-10-31 12:33:44 +08:00
Zixuan Chen
e0a472fd1a feat: basic wasm interface 2022-10-31 12:22:07 +08:00
Zixuan Chen
16e3d6f3cb chore: bk 2022-10-28 17:19:58 +08:00