Redundancy / go-sync

gosync is a library for Golang styled around zsync / rsync, written with the intent that it enables efficient differential file transfer in a number of ways. NB: I am unable to contribute to this at the moment

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Possible to stream files through an xz algorithim?

fire opened this issue · comments

It may be possible to stream a part of the transfer through an xz algorithm such as https://bitbucket.org/Rawr/goxz/.

There is some stuff missing for support of compressed blocks at the moment - particularly the block source implementation would need to translate a request for a set of blocks into a correct range in the compressed source.

I'm working on some changes that should help to enable this by pulling the block source base lookup of the start and end of a block into an interface (which will allow compressed ranges). It would still need implementation of the compression, some extraction in the http requester and the range lookup, but that ought to enable block-based compression.

I'll hopefully have a look at compression soon

Sorry, I haven't had much time for this, and currently I can't see when I will in the next few months.
Perhaps I'll manage to squeeze some time in somehow.