/btfs

A bittorrent filesystem based on FUSE.

Primary LanguageC++GNU General Public License v3.0GPL-3.0

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 a recent Ubuntu (Xenial, Wily, Vivid or Trusty)

$ sudo add-apt-repository ppa:johang/btfs
$ sudo apt-get update
$ sudo apt-get install btfs

Installing on Arch Linux

$ sudo pacman -S btfs

Installing on Gentoo

# emerge -av btfs

Installing on OS X

BTFS has a formula in the homebrew/fuse repository, ready to go. Just install brew if you hadn't, and then

$ brew install homebrew/fuse/btfs

Dependencies (on Linux)

  • fuse ("fuse" in Debian/Ubuntu)
  • libtorrent ("libtorrent-rasterbar7" in Debian/Ubuntu)
  • libcurl ("libcurl3" in Debian/Ubuntu)

Building from git on a recent Debian/Ubuntu

$ sudo apt-get install autoconf automake libfuse-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:

$ sudo make install

Building on OS X

Use brew to get the dependencies and clone the project.

$ brew install Caskroom/cask/osxfuse libtorrent-rasterbar autoconf automake pkg-config
$ git clone https://github.com/johang/btfs.git btfs
$ cd btfs

Open the file configure.ac and replace fuse >= 2.8.0 with fuse >= 2.7.3 (Only if you have the latest osxfuse version!, see why on pull request #5). Then:

$ autoreconf -i
$ ./configure
$ make
$ sudo make install