blob: 1a092fa4597d0a88c9911cd78a5d74aa46bd48a9 (
plain) (
tree)
|
|
[[!meta title="hyperdrive.el: Peer-to-peer filesystem in Emacs"]]
[[!meta copyright="Copyright © 2023 ${speakers}"]]
[[!inline pages="internal(2023/info/hyperdrive-nav)" raw="yes"]]
<!-- Initially generated with emacsconf-publish-talk-page and then left alone for manual editing -->
<!-- You can manually edit this file to update the abstract, add links, etc. --->
# hyperdrive.el: Peer-to-peer filesystem in Emacs
Joseph Turner, <https://ushin.org> xmpp:discuss@conference.ushin.org (XMPP MUC for USHIN discussion), <mailto:joseph@ushin.org>
[[!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"]]
|