Commit Graph

1135 Commits

Author SHA1 Message Date
Kovid Goyal
4b5216adcf Change delta creation API to use io.Writer
Simplifies logic and avoids an extra copy if the writer doesnt need to
make its own copy
2023-07-30 19:49:41 +05:30
Kovid Goyal
94b5bedfa5 Add overall file checksum verification to the rsync protocol 2023-07-30 19:49:41 +05:30
Kovid Goyal
e125f803b3 Work on adding overall checksum support 2023-07-30 19:49:41 +05:30
Kovid Goyal
039e17840a Allow users to customize buffer growth strategy 2023-07-30 19:49:41 +05:30
Kovid Goyal
c2ad662bed Use the append paradigm for the delta iterator as well 2023-07-30 19:49:41 +05:30
Kovid Goyal
579ab8551e Add some API docs 2023-07-30 19:49:41 +05:30
Kovid Goyal
77d5fe1be5 Change signature generation API to allow caller to provide storage and control iteration 2023-07-30 19:49:41 +05:30
Kovid Goyal
bbb6a4ae35 Micro-optimization: store strong hash as a uint64 instead of a byte slice 2023-07-30 19:49:41 +05:30
Kovid Goyal
55f9359e1b Make the rsync struct private 2023-07-30 19:49:41 +05:30
Kovid Goyal
6c10528cbd Make the hasher var private in the rsync API 2023-07-30 19:49:41 +05:30
Kovid Goyal
ca835cd80d ... 2023-07-30 19:49:41 +05:30
Kovid Goyal
7268513332 More tests 2023-07-30 19:49:41 +05:30
Kovid Goyal
71c7c4b285 Clean up delta generation algorithm implementation 2023-07-30 19:49:41 +05:30
Kovid Goyal
83d97c515c Use the iterator design for bytes based API as well 2023-07-30 19:49:41 +05:30
Kovid Goyal
e7d02b79d7 Make diff internals private 2023-07-30 19:49:41 +05:30
Kovid Goyal
6bc0fc7615 Make serializing data ops avoid a double copy 2023-07-30 19:49:40 +05:30
Kovid Goyal
f7723a65fa Removal original delta operation implementation
Mine is nicer and much more amenable to debugging
2023-07-30 19:49:40 +05:30
Kovid Goyal
35bfdbd926 ... 2023-07-30 19:49:40 +05:30
Kovid Goyal
3db2c4fe5d Make the test non-random 2023-07-30 19:49:40 +05:30
Kovid Goyal
74e0fa3f1d Show invocation line for failing test 2023-07-30 19:49:40 +05:30
Kovid Goyal
ed6e3dfe2c Speedup Memset for single val 2023-07-30 19:49:40 +05:30
Kovid Goyal
678ad627b2 Improve testing infra for rsync roundtrip 2023-07-30 19:49:40 +05:30
Kovid Goyal
26c93af565 ... 2023-07-30 19:49:40 +05:30
Kovid Goyal
f27bb2103f Work on cleaning up the checksum searching algorithm 2023-07-30 19:49:40 +05:30
Kovid Goyal
4dc409ff5d Increase MaxBlockSize 2023-07-30 19:49:40 +05:30
Kovid Goyal
6a7c194d8f In the tests check that too much data is not being transmitted 2023-07-30 19:49:40 +05:30
Kovid Goyal
79fd0b19cf Fix a bug in upstream CreateDelta that could ignore trailing data if a matching hash is not found for it 2023-07-30 19:49:40 +05:30
Kovid Goyal
82721ef053 Check for error during seek() 2023-07-30 19:49:40 +05:30
Kovid Goyal
6d614a98ac Get the test to pass 2023-07-30 19:49:40 +05:30
Kovid Goyal
26c22f0086 Work on creating tests for rsync api 2023-07-30 19:49:40 +05:30
Kovid Goyal
278a3986e5 Simplify API a bit 2023-07-30 19:49:40 +05:30
Kovid Goyal
2801b934fb Split up API into two structs one for diffing and one for patching 2023-07-30 19:49:40 +05:30
Kovid Goyal
a5c62da265 Dont use JSON for signature header 2023-07-30 19:49:39 +05:30
Kovid Goyal
c28f6a7bf4 Make CreateSignature byte oriented 2023-07-30 19:49:39 +05:30
Kovid Goyal
71a1050b9f Make loading of external signature data also streaming 2023-07-30 19:49:39 +05:30
Kovid Goyal
7e12972414 Wrap the rsync Go API to use with byte streams and arbitrary hash functions 2023-07-30 19:49:39 +05:30
Kovid Goyal
d539620c9d Import Go implementation of rsync algorithm
From https://github.com/jbreiding/rsync-go/blob/master/rsync.go
2023-07-30 19:49:39 +05:30
Kovid Goyal
10362c3121 DRYer 2023-07-30 19:49:39 +05:30
Kovid Goyal
dee6210de5 Utility function to initialize struct based on default tags 2023-07-30 19:49:39 +05:30
Kovid Goyal
38666f978b More work on porting transfer kitten 2023-07-30 19:49:39 +05:30
Kovid Goyal
aa86b98eee Use encryption for bypass 2023-07-30 19:49:39 +05:30
Kovid Goyal
5d361757a2 more work on the transfer kitten 2023-07-30 19:49:38 +05:30
Kovid Goyal
ff3232547d More work on transfer kitten porting 2023-07-30 19:49:38 +05:30
Kovid Goyal
55bbf175c6 Port send file mapping tests 2023-07-30 19:49:37 +05:30
Kovid Goyal
be7f276d3e More work on the transfer kitten 2023-07-30 19:49:37 +05:30
Kovid Goyal
7cec9016d3 Start work on porting the transfer kitten to Go 2023-07-30 19:49:37 +05:30
Kovid Goyal
28fbab3476 ... 2023-07-24 12:45:01 +05:30
Kovid Goyal
8cab5f881f More timer dispatch loop cleanups 2023-07-24 12:38:48 +05:30
Kovid Goyal
f4b0183341 Nicer debug output of timers 2023-07-24 12:19:27 +05:30
Kovid Goyal
ce35532aa5 Avoid unnecessary copy and sort of timers 2023-07-24 12:01:00 +05:30