Commit graph

531 commits

Author SHA1 Message Date
0bd8f0541d feat: implemented CRDT engine (merge branch 'woot') 2023-11-23 20:46:46 +01:00
8df0b8ec41 feat: poll doesn't ever lock the RwLock
to make try_recv deadlocks way more rare
2023-11-23 20:45:43 +01:00
1e39363815 chore: lock woot version 2023-11-23 15:52:03 +01:00
0ba2c5ccef fix: ouch mutexes are harddddd 2023-11-17 18:38:29 +01:00
175b9c945a fix: new approach for select_buffer
this is definitely bloatier but should work and not deadlock?
2023-11-17 18:28:32 +01:00
152679669b feat: buffer controller exposes its name 2023-11-17 17:38:47 +01:00
8dc3538f32 feat: experimental select_buffer client api 2023-11-17 17:00:10 +01:00
99ba5f708d docs: ocd 2023-11-17 05:58:12 +01:00
76e61b1abb docs: include doc into textchange block 2023-11-17 05:53:38 +01:00
9df4594408 feat: send granular changes, added deadlocked error 2023-11-17 05:47:57 +01:00
39f2bd6ac2 docs: updated usage and references 2023-11-17 05:47:40 +01:00
5be1a7b901 fix: export woot and not OT 2023-11-17 05:46:13 +01:00
2ccb5c936b feat: moved TextChange into api, added from diff 2023-11-17 05:45:31 +01:00
5208ff65c0 fix: don't trigger on self change, smaller siteid
also set woot dep rev because cache
2023-11-17 03:30:39 +01:00
ca29ee3e0f fix: better api with TextChange, ugly fixes
it's pretty ugly but it kinda works? really need to do this better
2023-11-16 06:52:25 +01:00
8267e1b890 fix: other way around... 2023-11-16 06:50:55 +01:00
e7ad2723ba fix: initialize woot with str, gen siteid from uid 2023-11-10 04:29:50 +01:00
1b7d315c9d fix: pull codemp-woot from github 2023-11-10 04:29:39 +01:00
178ececfe2 fix: remove callback from controller api 2023-11-09 05:22:16 +01:00
8686715e9d feat: swap in our WOOT implementation
it's kinda crude and buggy but some things might just work?
2023-11-09 05:21:24 +01:00
c6abc33c53 fix!: removed canc from factory, impl for Arc<str> 2023-09-13 00:05:15 +02:00
5812dea19a feat: swap cursor start/end if needed when sending 2023-09-10 23:20:07 +02:00
ed151e2213 fix: docs, tests, leftovers 2023-09-10 04:23:39 +02:00
cf80104132 docs: updated features explaination 2023-09-10 03:47:59 +02:00
59aaf8f3b6 docs: fix references 2023-09-10 03:43:46 +02:00
6fe47ff682 fix: receive and return a runtime handle 2023-09-10 03:41:18 +02:00
4ec99bab36 chore: modularized crate into features
by default "client" is on so that it works like before but it's possible
to cherry pick features out and (for example) only build the grpc proto
structs
2023-09-10 03:40:31 +02:00
c0892b36cd docs: move descr directly into traits, not module 2023-09-10 03:39:44 +02:00
9040222570 docs: fix references 2023-09-10 03:06:47 +02:00
56dcf99778 fix: im dumb forgot to actually add api folder
also im lazy and dont want to redo last 2 commits because i wrote a ton
into last one :(
2023-09-10 03:03:49 +02:00
5277eceb01 feat: reworked buffer controller
basically now calling recv assumes we have locked the editor state, and
no more operations will be enqueued. this allows to safely transform and
send server operations. the way local ops are transformed and sent is
still kinda buggy but it mostly works? "dead"locks sometimes until more
stuff arrives. also buffercontroller no longer implements operation
factory, you gotta make a factory yourself
2023-09-10 03:01:37 +02:00
b2520898b5 chore: moved factory under api, restructured 2023-09-10 03:00:47 +02:00
14145ec369 fix: kind of resolved local race condition...
... but it became so much spaghetti that I'm not eating any more pasta
for a while

seriously tho must be resolved, maybe moving this logic completely
serverside?
2023-09-07 20:39:45 +02:00
1e3439e08e feat: send md5 hash with rawops
this should have a tiny impact on performance, but should be monitored
2023-09-05 20:40:31 +02:00
fb7f4c1b31 fix: updated cached buffer immediately 2023-09-05 20:40:10 +02:00
eeececf1b1 fix: attempt to solve client edits race condition
basically send increments a counter and we compare that before
transforming operations, allowing to stop processing, undo and try to
receive again. This won't solve all issues but should make them much
more rare? I hope
2023-09-05 20:13:09 +02:00
ed2f6688c3 docs: mentioned Instance early on 2023-09-05 01:31:57 +02:00
4bf3c1c7a5 fix: typo 2023-09-05 01:30:07 +02:00
2a7c9d2338 chore: bump version 2023-09-05 01:29:05 +02:00
81bbef6072 feat: helpers in textchange to convert to rowcol 2023-09-04 03:10:33 +02:00
690a1915c9 feat: include references to buffer before and after 2023-09-04 03:09:32 +02:00
adf6009472 feat: added Ignorable Error with generic default 2023-09-04 03:08:52 +02:00
f9977f0b14 fix: don't show source code in documentation 2023-09-03 23:04:19 +02:00
1034f0482c chore: moved controller under api module 2023-09-03 23:04:08 +02:00
62f7eef835 ci: run CI with all features 2023-08-21 15:08:48 +02:00
6ee247a61e chore: bump version 2023-08-21 03:54:17 +02:00
9f8245a9a4 fix: ignore cursor events from self 2023-08-21 03:53:57 +02:00
5f1f43e645 feat: derive Debug for controllers 2023-08-21 02:47:52 +02:00
0cce1d1ea0 feat: added poll/try_recv to controller, fixes
added Default derive to TextChange, added docs for poll and try_recv
methods, implemented new functionality in controllers, using a watch
channel (or reusing if available). Fixed global being always active and
wrongly imported when inactive.
2023-08-21 02:35:56 +02:00
0c5fb282f6 fix: don't default enable global instance 2023-08-20 18:45:29 +02:00