Andrew Jeffery
e3de7d970a
Only store hashes in sync_state rather than the actual changes
2021-04-24 14:25:31 -07:00
Andrew Jeffery
701f63c624
Separate benchmark into sync and sync with changes
2021-04-24 14:25:31 -07:00
Andrew Jeffery
4c7e0c9167
Mutate the SyncState rather than consuming and returning
2021-04-24 14:25:31 -07:00
Andrew Jeffery
90cbbc7cab
Fix ordering of receive_sync_message arguments
2021-04-24 14:25:31 -07:00
Andrew Jeffery
1f338393c3
Move SyncHave to state.rs
2021-04-24 14:25:31 -07:00
Andrew Jeffery
7c2fd94c62
Specify some capacities
2021-04-24 14:25:31 -07:00
Andrew Jeffery
e58ba342f8
Move state to separate module
2021-04-24 14:25:31 -07:00
Andrew Jeffery
21d19cc909
Move bloom filter to separate module
2021-04-24 14:25:31 -07:00
Andrew Jeffery
aebfdc6572
Update patches with pending_changes
2021-04-24 14:25:31 -07:00
Andrew Jeffery
d61f1e1c6e
Remove our_need and fix default SyncState
2021-04-24 14:25:31 -07:00
Andrew Jeffery
0a377a858b
Catch up with js changes
2021-04-24 14:25:31 -07:00
Andrew Jeffery
6b424d6e97
Take ownership of have
2021-04-24 14:25:31 -07:00
Andrew Jeffery
220580506d
Performance updates
...
Where we do lots of contains checks we should use hashsets rather than
linear scan through a Vec.
Also tried to minimise some copying.
2021-04-24 14:25:31 -07:00
Andrew Jeffery
f8df532d25
Don't have an old_sync_state, just a sync_state
2021-04-24 14:25:31 -07:00
Andrew Jeffery
0655f7ade6
Remove unused log macro
2021-04-24 14:25:31 -07:00
Andrew Jeffery
7c3f52f2e3
Fix need request when head is a false positive
2021-04-24 14:25:31 -07:00
Andrew Jeffery
62f6c6d288
Fix updating sharedHeads when a subset of changes is sent
2021-04-24 14:25:31 -07:00
Andrew Jeffery
6b6135d108
Require vec rather than slice
2021-04-24 14:25:31 -07:00
Andrew Jeffery
85f53685e2
Move to binary representation of changes in api
2021-04-24 14:25:31 -07:00
Andrew Jeffery
7d13091393
Fix bug in get_missing_deps
2021-04-24 14:25:31 -07:00
Andrew Jeffery
68ddb2504e
Improve js interop
2021-04-24 14:25:31 -07:00
Andrew Jeffery
e1bdf34471
More borrowing
2021-04-24 14:25:31 -07:00
Andrew Jeffery
00dcd531c1
Use more references
2021-04-24 14:25:31 -07:00
Andrew Jeffery
3fd548cbe1
Use nicer syntax for repeat
2021-04-24 14:25:31 -07:00
Andrew Jeffery
7573c58521
Implement encodable for slice of change hashes
2021-04-24 14:25:31 -07:00
Andrew Jeffery
69bbd8c64d
Remove clone
2021-04-24 14:25:31 -07:00
Andrew Jeffery
469b40e371
Remove unnecessary brackets
2021-04-24 14:25:31 -07:00
Andrew Jeffery
34ede85699
Inline probe as usize
2021-04-24 14:25:31 -07:00
Andrew Jeffery
4dd2d42629
Use builtin function to build u32 from bytes
2021-04-24 14:25:31 -07:00
Andrew Jeffery
9cd146a464
Advance heads only needs slice
2021-04-24 14:25:31 -07:00
Andrew Jeffery
8b4632ae07
Use SyncHave::default
2021-04-24 14:25:31 -07:00
Andrew Jeffery
c5d3572670
Remove unwraps in sync
2021-04-24 14:25:31 -07:00
Andrew Jeffery
4b7bbe6710
Rename peer to sync
2021-04-24 14:25:31 -07:00
Andrew Jeffery
cd56799e1c
Move all to sync
2021-04-24 14:25:31 -07:00
Andrew Jeffery
766b5621d4
Add more sync work
2021-04-24 14:25:31 -07:00
Andrew Jeffery
3eeb825138
Initial sync work
2021-04-24 14:25:31 -07:00
Andrew Jeffery
137e6d2808
Fix clippy lints
2021-04-07 08:07:53 -07:00
Andrew Jeffery
342504714a
Format
2021-04-07 08:07:53 -07:00
Martin Kleppmann
38214ca21e
Merge pull request #65 from automerge/implement-compression
...
Implement compression
2021-04-02 17:47:39 +01:00
Martin Kleppmann
f63fbe6156
Fix release build
2021-04-02 17:40:52 +01:00
Gregory
f6b3964733
backend: remove unecessary draining of changes to apply.
2021-04-01 09:19:32 -07:00
Andrew Jeffery
d17554dfc4
Remove rc on backend
2021-03-31 08:59:38 -07:00
Andrew Jeffery
02e1a6b6cc
Simplify if statement to remove unreachable case
...
If `op_by_id` contains `succ` then we can get the index straight away,
else we can do the original work. This means we don't need an `else`
case for a third situation as in reality there isn't one.
2021-03-30 09:01:03 -07:00
Andrew Jeffery
3f5a781c71
Simplify while stack not empty ( #68 )
2021-03-28 21:28:37 +01:00
Alex Good
82cf04ae49
Implement compression
2021-03-27 16:52:43 +00:00
Andrew Jeffery
1e36b62272
Check the checksum in the document on decoding ( #62 )
2021-03-26 13:59:03 +00:00
Andrew Jeffery
921e9859b2
Fix issue in RleDecoder with null runs ( #63 )
...
* Add test to check save and load works on failing input
We loop 100 times due to it being a flaky test, likely due to an
iteration order issue in hashmaps.
* Update printing diff of changes
* Add new case for save then load
* Add another failing test case for save_load
* Update test case
* Update test case to not use empty strings in keys
* Specify to decode into usize in rle decoder
The `decoder.read` call was previously inferring to use isize since the
`self.count` variable is that type. This meant that for a list of null
values >= 64 in length it would read it as negative and so enter an
infinite loop of reading nulls, even if there were other values to read.
This changes the read to use usize but introduces the issue of usize
potentially being bigger than isize. This should be very unlikely for
what it is currently used for though so I'll defer this to later work.
* Add a test case to check the repeated nulls issue in rle
* Update tests
* Specify reading rle len as i64 instead of isize
2021-03-26 13:57:08 +00:00
Alex Good
c103b0638e
Ritual abasement at the altar of clippy
2021-03-02 19:35:00 +00:00
Alex Good
4f4674a4a1
Implement cursors in frontend
2021-03-02 16:07:52 +00:00
Alex Good
93d45c381d
Run rustfmt
2021-02-15 15:04:05 +00:00