brig: Ship your data around the world

brig: Ship your data around the world

About

brig is a distributed & secure file synchronization tool with version control. It is based on ipfs, written in Go and will feel familiar to git users.node

Key feature highlights:git

  • Works even for nodes that are hidden behind a NAT.
  • Encryption of data in rest and transport + compression on the fly.
  • Simplified git version control (no real branches).
  • Sync algorithm that can handle moved files and empty directories and files.
  • Your data does not need to be stored on the device you are using.
  • FUSE filesystem that feels like a normal (sync) folder.
  • No central server at all. Still, central architectures can be build with brig.
  • Simple user management with users that look like email addresses.
  • Hash algorithm can be changed, unlike with git. ;-)

This project has started end of 2015 and has seen many conceptual changes in the meantime. It started out as research project of two computer science students (me and qitta). After writing our master theses on it, it was put down for a few months until I (sahib) picked at up again and currently am trying to push it to a usable prototype.github

Donations

In it's current status, it's a working proof of concept. I'd love to work on it more, but my day job (and the money that comes with it) forbids that. If you're interested in the development of brig and would think about supporting me financially, then please contact me!golang

If you'd like to give me a small donation, you can use liberapay:ui

Donate using Liberapay

Focus

brig tries to focus on being up conceptually simple, by hiding a lot of complicated details regarding storage and security. Therefore I hope the end result is easy and pleasant to use, while being to be secure by default. Since brig is a "general purpose" tool for file synchronization it of course cannot excel in all areas. This is especially true for efficiency, which is sometimes sacrificed to get the balance of usability and security right.this

Installation

$ go get github.com/sahib/brig

That should just work if you previously setup Go. Afterwards you'll have a brig command on your computer, which will print it's help when invoked without any arguments.spa

Getting started

TODO: Make this an asciinema.prototype

$ mkdir sync
$ cd sync
$ brig init alice@wonderland.de
$ brig cat README.md
$ brig remote add bob@wonderland.de QM123...:Smxyz...