wharf

module
Version: v0.0.0-...-e0beba7 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jun 18, 2020 License: MIT

README

wharf

Build Status build status codecov Go Report Card GoDoc MIT licensed

wharf is a protocol for incrementally transferring software builds over the network using minimal time/bandwidth.

It is used in production at https://itch.io to allow creators to quickly iterate & players to keep their library always up-to-date.

This repository contains the reference golang implementation of the wharf protocol, along with the reference protobuf definition files.

The complete spec is available online, as a book:

And can be contributed to via its GitHub repository:

See also

butler is the https://itch.io command-line tool and is a wharf client. It's the easiest way to try out wharf without having to code anything yourself.

Hacking on wharf

wharf is a pretty typical golang project, all its dependencies are open-source, it even has a few tests.

Regenerating protobuf code
protoc --go_out=. pwr/*.proto

protobuf v3 is required, as we use the 'proto3' syntax.

The tlc (containers) and bsdiff packages work similarly.

License

Licensed under MIT License, see LICENSE for details.

Contains modified code from the following projects:

Directories

Path Synopsis
Package bsdiff is a generated protocol buffer package.
Package bsdiff is a generated protocol buffer package.
compressors
decompressors
pwr
Package pwr is a generated protocol buffer package.
Package pwr is a generated protocol buffer package.
overlay
Package overlay is a generated protocol buffer package.
Package overlay is a generated protocol buffer package.
Package wire is a generated protocol buffer package.
Package wire is a generated protocol buffer package.
Package wsync computes a list of operations needed to mutate one file into another file, re-using as much of the former as possible.
Package wsync computes a list of operations needed to mutate one file into another file, re-using as much of the former as possible.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
t or T : Toggle theme light dark auto
y or Y : Canonical URL