Skip to content
/ wharf Public

📡 A protocol to quickly transfer software builds (reference Go implementation)

License

Notifications You must be signed in to change notification settings

itchio/wharf

Folders and files

NameName
Last commit message
Last commit date

Latest commit

189a019 · Jan 24, 2022
Jan 24, 2022
Jul 3, 2019
Feb 18, 2020
Jul 3, 2019
Apr 14, 2018
Jul 3, 2019
Apr 30, 2018
Jun 18, 2020
Mar 3, 2020
Apr 15, 2016
Apr 14, 2018
Apr 14, 2018
Jul 2, 2019
Oct 24, 2019
Oct 25, 2019
Mar 4, 2020
Mar 1, 2016
Oct 18, 2019
Jul 2, 2019
Oct 18, 2019
Jun 18, 2020
Jun 18, 2020

Repository files navigation

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:

About

📡 A protocol to quickly transfer software builds (reference Go implementation)

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published