brig

command module
v0.1.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 15, 2018 License: AGPL-3.0 Imports: 2 Imported by: 0

README

brig: Ship your data around the world

a brig

go reportcard GoDoc Build Status Documentation

Table of Contents

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.

Key feature highlights:

  • Encryption of data in rest and transport + compression on the fly.
  • Simplified git version control.
  • 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 currently 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 identification and discovery with users that look like email addresses.

Also take a look at the website draft for a polished list of features.

Getting started

asciicast

...If you want to know, what to do after you can read the Quickstart.

Status

At the moment it is somewhere in the big void between proof of concept and beta release. If you try it out right now, it will inevitably eat the data you give it and possibly harm your kids. You have been warned. I still encourage you to try it.

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.

If you want to open a bug report, just type brig bug to get a readily filled template for you.

Documentation

All documentation can be found on ReadTheDocs.org:

http://brig.readthedocs.io/en/latest/index.html
Donations

I really would like to work more on brig, but my day job (and the money that comes with it) forbids that. If you're interested in the development and would think about supporting me financially, then please contact me!

If you'd like to give me a small & steady donation, you can always use Liberapay:

Thank you!

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 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.

Documentation

The Go Gopher

There is no documentation for this package.

Directories

Path Synopsis
ipfs
ipfs implements an interface to ipfs's codebase that also fulfills the backend.Backend interface.
ipfs implements an interface to ipfs's codebase that also fulfills the backend.Backend interface.
db
mio
package mio (short for memory input/output) implements the layered io stack of brig.
package mio (short for memory input/output) implements the layered io stack of brig.
mio/encrypt
Package encrypt implements the encryption layer of brig.
Package encrypt implements the encryption layer of brig.
nodes
Package nodes implements all nodes and defines basic operations on it.
Package nodes implements all nodes and defines basic operations on it.
vcs
cmd
pwd
tabwriter
Package tabwriter implements a write filter (tabwriter.Writer) that translates tabbed columns in input into properly aligned text.
Package tabwriter implements a write filter (tabwriter.Writer) that translates tabbed columns in input into properly aligned text.
Package config implements a very opinionated config utility.
Package config implements a very opinionated config utility.
Package fuse implements a FUSE layer for brig.
Package fuse implements a FUSE layer for brig.
net
peer
Package peer implements the basic data types needed to communicate with other brig instances.
Package peer implements the basic data types needed to communicate with other brig instances.
Package util implements small helper function that should be included in the stdlib in our opinion.
Package util implements small helper function that should be included in the stdlib in our opinion.
conductor
Package conductor is a small helper to execute work heavy operations in the backgrounds that deliver partial results ("result streaming").
Package conductor is a small helper to execute work heavy operations in the backgrounds that deliver partial results ("result streaming").
log
Package log implements utility methods for logging in a colorful manner.
Package log implements utility methods for logging in a colorful manner.
trie
Package trie implements a general purpose Path-*Node.
Package trie implements a general purpose Path-*Node.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL