[[!meta title="hyperdrive.el: Peer-to-peer filesystem in Emacs"]] [[!meta copyright="Copyright © 2023 ${speakers}"]] [[!inline pages="internal(2023/info/hyperdrive-nav)" raw="yes"]] # hyperdrive.el: Peer-to-peer filesystem in Emacs Joseph Turner, xmpp:discuss@conference.ushin.org (XMPP MUC for USHIN discussion), [[!inline pages="internal(2023/info/hyperdrive-before)" raw="yes"]] This talk explores [hyperdrive.el](https://ushin.org/hyperdrive/hyperdrive-manual.html), an Emacs interface to [hyperdrive](https://docs.holepunch.to/building-blocks/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](https://www.gnu.org/philosophy/free-software-even-more-important.html) 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: - [directly edit hyperdrive files](https://ushin.org/hyperdrive/hyperdrive-manual.html#Write-to-a-hyperdrive) - [dired-like directory view](https://ushin.org/hyperdrive/hyperdrive-manual.html#Directory-view) - [org-mode link support](https://ushin.org/hyperdrive/hyperdrive-manual.html#Org-mode-links) - [version history navigation/diffing](https://ushin.org/hyperdrive/hyperdrive-manual.html#View-the-hyperdrive-version-history) - [built-in bookmark.el integration](https://ushin.org/hyperdrive/hyperdrive-manual.html#Bookmark-a-hyperdrive) - [local directory mirroring](https://ushin.org/hyperdrive/hyperdrive-manual.html#Mirror-a-whole-directory) - [audio/video streaming](https://ushin.org/hyperdrive/hyperdrive-manual.html#Stream-audio-and-video) Planned features include: - peer discovery (swarming) - diffing directories between versions Check out [the manual](https://ushin.org/hyperdrive/hyperdrive-manual.html#Installation) for installation instructions! You're welcome to join our public XMPP chat room! - xmpp:discuss@conference.ushin.org ([Join anonymously from your browser](https://anonymous.cheogram.com/discuss@conference.ushin.org)) - \#\_bifrost\_discuss\_conference.ushin.org:aria-net.org (Matrix bridge) Bugs can be submitted to the [ushin issue tracker](https://todo.sr.ht/~ushin/ushin). Patches, comments or questions can be submitted to the [ushin public inbox](https://lists.sr.ht/~ushin/ushin). [[!inline pages="internal(2023/info/hyperdrive-after)" raw="yes"]] [[!inline pages="internal(2023/info/hyperdrive-nav)" raw="yes"]]