johang/btfs

A bittorrent filesystem based on FUSE.

C++

3,973

172 commits

updated Sep 13, 2026

See the code

README

BTFS (bittorrent filesystem)

What is this?

With BTFS, you can mount any .torrent file or magnet link and then use it as any read-only directory in your file tree. The contents of the files will be downloaded on-demand as they are read by applications. Tools like ls, cat and cp works as expected. Applications like vlc and mplayer can also work without changes.

Example usage

$ mkdir mnt
$ btfs video.torrent mnt
$ cd mnt
$ vlc video.mp4

To unmount and shutdown:

$ fusermount -u mnt

Installing on Debian/Ubuntu

# apt-get install btfs

Installing on Arch Linux

# pacman -S btfs

Installing on Gentoo

# emerge -av btfs

Installing on Fedora

# dnf install fuse-btfs

Installing on Fedora OSTree

$ rpm-ostree install fuse-btfs

OpenSUSE

# zypper install btfs

Installing on macOS

Use brew to install on macOS.

$ brew install btfs

Dependencies (on Linux)

  • fuse3 ("fuse3" in Ubuntu 22.04)
  • libtorrent ("libtorrent-rasterbar8" in Ubuntu 22.04)
  • libcurl ("libcurl4" in Ubuntu 22.04)

Building from git on a recent Debian/Ubuntu

$ sudo apt-get install autoconf automake libfuse3-dev libtorrent-rasterbar-dev libcurl4-openssl-dev g++
$ git clone https://github.com/johang/btfs.git btfs
$ cd btfs
$ autoreconf -i
$ ./configure
$ make

And optionally, if you want to install it:

$ make install

Building on macOS

Use brew to get the dependencies.

$ brew install --cask macfuse libtorrent-rasterbar autoconf automake pkg-config
$ git clone https://github.com/johang/btfs.git btfs
$ cd btfs
$ autoreconf -i
$ ./configure
$ make

And optionally, if you want to install it:

$ make install
bittorrent
brew
btfs
debian
filesystem
fuse
libtorrent
linux
macos
osxfuse
ubuntu

johang/btfs

A bittorrent filesystem based on FUSE.

C++

3,973

172 commits

updated Sep 13, 2026

See the code

README

BTFS (bittorrent filesystem)

What is this?

With BTFS, you can mount any .torrent file or magnet link and then use it as any read-only directory in your file tree. The contents of the files will be downloaded on-demand as they are read by applications. Tools like ls, cat and cp works as expected. Applications like vlc and mplayer can also work without changes.

Example usage

$ mkdir mnt
$ btfs video.torrent mnt
$ cd mnt
$ vlc video.mp4

To unmount and shutdown:

$ fusermount -u mnt

Installing on Debian/Ubuntu

# apt-get install btfs

Installing on Arch Linux

# pacman -S btfs

Installing on Gentoo

# emerge -av btfs

Installing on Fedora

# dnf install fuse-btfs

Installing on Fedora OSTree

$ rpm-ostree install fuse-btfs

OpenSUSE

# zypper install btfs

Installing on macOS

Use brew to install on macOS.

$ brew install btfs

Dependencies (on Linux)

  • fuse3 ("fuse3" in Ubuntu 22.04)
  • libtorrent ("libtorrent-rasterbar8" in Ubuntu 22.04)
  • libcurl ("libcurl4" in Ubuntu 22.04)

Building from git on a recent Debian/Ubuntu

$ sudo apt-get install autoconf automake libfuse3-dev libtorrent-rasterbar-dev libcurl4-openssl-dev g++
$ git clone https://github.com/johang/btfs.git btfs
$ cd btfs
$ autoreconf -i
$ ./configure
$ make

And optionally, if you want to install it:

$ make install

Building on macOS

Use brew to get the dependencies.

$ brew install --cask macfuse libtorrent-rasterbar autoconf automake pkg-config
$ git clone https://github.com/johang/btfs.git btfs
$ cd btfs
$ autoreconf -i
$ ./configure
$ make

And optionally, if you want to install it:

$ make install
bittorrent
brew
btfs
debian
filesystem
fuse
libtorrent
linux
macos
osxfuse
ubuntu

Significant stargazers

(top 24 of 40)

Simmo Saan

115 followers · starred Jan 2016

Luke T. Shumaker

35 followers · starred Apr 2024

Jesse Gumm

121 followers · starred Jan 2016

Edgar

161 followers · starred Apr 2024