hyperdrive.el: Peer-to-peer filesystem in Emacs

Joseph Turner, https://ushin.org xmpp:discuss@conference.ushin.org (XMPP MUC for USHIN discussion), joseph@ushin.org

Format: 40-min talk followed by live web conference Q&A
Discuss on IRC: #emacsconf
Status: Waiting for video from speaker

Description

This talk explores hyperdrive.el, an Emacs interface to hyperdrive, a peer-to-peer shared filesystem.

Peer-to-peer networks give you the freedom to choose your sources of information and to communicate directly with them. Emacs is a freedom-respecting text editor/operating system that puts you in the driver's seat. By bringing these two worlds together, hyperdrive.el aims to inspire deliberation about digital communication freedom.

Hyperdrives are peer-to-peer shared folders, well-suited for data that changes over time, like personal blogs. It complements Bittorrent and IPFS, which work best with unchanging data, like journal archives.

Here's a scenario: Alice creates a new hyperdrive and adds some files. Her computer returns a public key URL that uniquely identifies the hyperdrive. Alice shares that URL with Bob, who can then download Alice's files directly from her computer. No third-party servers are required to route the connection.

Data is distributed among peers; once Bob has loaded Alice's files, Carol can get them from Bob (or anyone else who has a copy) even when Alice is offline. Drives are mutable; when Alice adds/removes/changes files in the drive, Bob can refresh her drive on his machine to get the latest changes. Drives are versioned; anyone with the URL can "check out" prior versions of Alice's drive to see what her files used to look like.

Currently supported features in hyperdrive.el include:

Planned features include:

  • peer discovery (swarming)
  • diffing directories between versions

Check out the manual for installation instructions!

You're welcome to join our public XMPP chat room!

Bugs can be submitted to the ushin issue tracker. Patches, comments or questions can be submitted to the ushin public inbox.

Questions or comments? Please e-mail joseph@ushin.org