❌

Normal view

There are new articles available, click to refresh the page.
Today β€” 4 July 2025Main stream

Emacs - hyperdrive

2 July 2025 at 00:00

Last Updated: 02nd July 2025

While I was looking into past EmacsConf talks (just to explore Emacs…), I found this talk about hyperdrive.el: Peer-to-peer filesystem in Emacs in EmacsConf 2023, where Prot and Joseph explained about this decentralized drive and how to use it from Emacs.

This seemed to be a nice way to share files without any third party online services and also embraces privacy too (We can even stream audio/video as well !). So I just want to give it a try and explore this and so I’m going to share what I’ve done so far.

First I followed the manual to install it. There are two parts to it. One to install hyperdrive.el from NonGNU ELPA and after that install the gateway (hyperdrive-gateway-ushin) that helps in connecting with the network.

After the installation and using the default config, when I tried to start the gateway, I wasn’t able to and had following error,

Error running timer: (hyperdrive-error "Gateway failed to start (see #<buffer *hyperdrive-start*> for errors)")

in my Emacs 30.1. This persisted even if I installed the gateway manually.

I tried searching the web but coudn’t find a way to solve this (I think my searching skills aren’t good enough…), so I asked Joseph in XMPP chat room and he asked me to show the error that is being thrown out when run directly in command-line based on which we found that the gateway binaries being distributed has a dependency issue with cryptography library libsodium and a packaging problem as well.

So then I tried building the gateway myself from source and then it worked but not through Emacs and then Joseph pointed me to set these two path variables: hyperdrive-gateway-program & hyperdrive-gateway-directory and then it worked from Emacs itself and was able to access Prot and USHIN’s hyperdrives.

Still I get this error message when I access any hyperdrive: Error running timer β€˜plz--respond’: (void-variable node) but able to access them.

In future, I plan to use this, whenever I want to share some large files or misc ones which I can’t share or post through my blog. Here’s the link to my public hyperdrive:

hyper://3y3fx1k4ifbw6uw7wzxhzkm5azp5gkbet53r6tc7a5qzsxeabeoo

Next, I wanted to delve more for e.g. on latest features like peer graph, hyperdrive-org-transclution, etc and it seems that we can also use it from mobile as well. Also explore how this hyperdrive works in contrast to IPFS and Torrent.

I will update those here when I complete them. Thanks for reading. Share me your thought about me or my blog to any of my social media handles.

PS: I also learnt about this keybinding C-x C-j (dired-jump) which opens the dired buffer of current file’s directory !.

More Emacs explorations to come… :)

❌
❌