Categorygithub.com/shadowspore/fossil-delta
repositorypackage
0.0.0-20240102155221-e3a8590b820b
Repository: https://github.com/shadowspore/fossil-delta.git
Documentation: pkg.go.dev

# Packages

No description provided by the author

# README

Delta compression algorithm written in Go

Fossil achieves efficient storage and low-bandwidth synchronization through the use of delta-compression. Instead of storing or transmitting the complete content of an artifact, fossil stores or transmits only the changes relative to a related artifact.

Other implementations:

Install

$ go get -u github.com/shadowspore/fossil-delta

Example

package main

import (
	"fmt"

	fdelta "github.com/shadowspore/fossil-delta"
)

func main() {
	origin := []byte("abcdefghijklmnopqrstuvwxyz1234567890")
	target := []byte("abcdefghijklmnopqrstuvwxyz0987654321")

	// Create delta
	delta := fdelta.Create(origin, target)

	// Create target by patching origin with delta
	patched, err := fdelta.Apply(origin, delta)
	if err != nil {
		panic(err)
	}

	fmt.Printf("Origin: `%s`\n", origin)
	fmt.Printf("Target: `%s`\n", target)
	fmt.Printf("Delta : `%s`\n", delta)
	fmt.Printf("Patch : `%s`\n", patched)
}