brig

command module
v0.4.1 Latest Latest
Warning

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

Go to latest
Published: Mar 30, 2019 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 CII Best Practices

brig gateway in the files tab

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 documentation for more details.

Installation

You can download the latest script with the following oneliner:

# Before you execute this, ask yourself if you trust me.
$ bash <(curl -s https://raw.githubusercontent.com/sahib/brig/master/scripts/install.sh)

Alternatively, you can simply grab the latest binary from the release tab.

Development versions can be installed easily by compiling yourself. If you have a recent version of go (>= 1.10) installed, it should be as easy as this:

$ go get -d -v -u github.com/sahib/brig  # Download the sources.
$ cd $GOPATH/src/github.com/sahib/brig   # Go to the source directory.
$ git checkout develop                   # Checkout the develop branch.
$ go run mage.go                         # Build the software.
$ $GOPATH/bin/brig help                  # Run the binary.

Please refer to the install docs for more details.

Getting started

asciicast

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

There is also a #brig room on matrix.org you can join with any Matrix client. Click this link to join the room directly via Riot.im.

Status

This software is in a beta phase currently. All mentioned features should work. Things might still change rapidly and there will be no guarantees given before version 1.0.0. Do not use brig yet as only storage for your production data. There are still bugs, but it should be safe enough to toy around with it quite a bit.

This project has started end of 2015 and has seen many conceptual changes in the meantime. It started out as research project. After writing my master theses on it, it was put down for a few months until I picked at up again and currently am trying to push it to usable software.

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.

Donations

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!

Documentation

The Go Gopher

There is no documentation for this package.

Directories

Path Synopsis
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 events is the event notification subsystem of brig.
Package events is the event notification subsystem of brig.
Package fuse implements a FUSE layer for brig.
Package fuse implements a FUSE layer for brig.
db
remotesapi
Package remotesapi implements a simple API for accessing all remotes and their online state as well as triggering syncs and diffs.
Package remotesapi implements a simple API for accessing all remotes and their online state as well as triggering syncs and diffs.
static
Package static contains embedded resources
Package static contains embedded resources
templates
Package templates contains embedded resources
Package templates contains embedded resources
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