xferspdy alternatives and similar packages
Based on the "Utilities" category.
Alternatively, view xferspdy alternatives based on common mentions on social networks and blogs.
Do you think we are missing an alternative of xferspdy or a related project?
This library provides binary diff and patch API in golang.
- Command line utilities to diff and patch binary files
- Library for fingerprint generation, rolling hash and block matching
- NEW : For large files, fingerprint generation automatically switches to parallel mode wherein multiple go routines are used concurrently. For files > 20 MB, there is an improvement of ~50% compared to sequential fingerprint generation.
Reference : Rsync Algorithm
- Need to have go installed, golang downloads
Do go get
go get github.com/monmohan/xferspdy
Install the command line utilities
go install ./... from the xferspdy directory
Using the API
See GoDoc. The docs also contain an example usage of the API.
Using the fpgen, diff and patch CLI utilities:
The library also provides CLI wrappers on API.
You can see the usage of any of these commands using
$ GOPATH/bin/<command> --help
Lets say you have a binary file (e.g. power point presentation MyPrezVersion1.pptx).
First generate a fingerprint of version 1
$ GOPATH/bin/fpgen -file <path>/MyPrezVersion1.pptx
This will generate the fingerprint file /MyPrezVersion1.pptx.fingerprint.
- Lets say that the file was changed now (for example add a slide or image) and saved as MyPrezVersion2.pptx
- Now Generate a diff (doesn't require original file)
$ GOPATH/bin/diff -fingerprint <path>/MyPrezVersion1.pptx.fingerprint -file <path>/MyPrezVersion2.pptx
It will create a patch file
- Now patch the Version 1 file to get the Version 2
$ GOPATH/bin/patch -patch <path>/MyPrezVersion2.pptx.patch -base <path>/MyPrezVersion1.pptx
- This will generate /Patched_MyPrezVersion1.pptx. This file would exactly be same as MyPrezVersion2.pptx.
NOTE: diff and patch are also common utilities present on most distributions so its better to give explicit path to these binaries. for example use $GOPATH/bin/diff and $GOPATH/bin/patch