dustmop / qri

distributed dataset version control system on IPFS

Home Page:https://qri.io

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Qri GoDoc License Codecov CI

qri is a global dataset version control system (GDVCS) built on the distributed web

Breaking that down:

  • global so that if anyone, anywhere has published work with the same or similar datasets, you can discover it.
  • Specific to datasets because data deserves purpose-built tools
  • version control to keep data in sync, attributing all changes to authors
  • On the distributed web to make all of the data published on qri simultaneously available, letting peers work on data together.

If you’re unfamiliar with version control, particularly the distributed kind, well you're probably viewing this document on github — which is a version control system intended for code. Its underlying technology – git – popularized some magic sauce that has inspired a generation of programmers and popularized concepts at the heart of the distributed web. Qri is applying that family of concepts to four common data problems:

  1. Discovery Can I find data I’m looking for?
  2. Trust Can I trust what I’ve found?
  3. Friction Can I make this work with my other stuff?
  4. Sync How do I handle changes in data?

Because qri is global and content-addressed, adding data to qri also checks the entire network to see if someone has added it before. Since qri is focused solely on datasets, it can provide meaningful search results. Every change on qri is associated with a peer, creating an audit-able trail you can use to quickly see what has changed and who has changed it. All datasets on qri are automatically described at the time of ingest using a flexible schema that makes data naturally inter-operate. Qri comes with tools to turn all datasets on the network into a JSON API with a single command. Finally, all changes in qri are tracked & synced.

Getting Involved

We would love involvement from more people! If you notice any errors or would like to submit changes, please see our Contributing Guidelines.

Building From Source

To build qri you'll need the go programming language on your machine.

You will also need to have go binaries on your path. By this, we mean the folder $GOPATH/bin should be in a place that your computer checks for binary executables. There are a few ways to set up your GOPATH, but we recommend checking out the goLang wiki.

Once your GOPATH is set, run:

$ go get github.com/qri-io/qri

Note - if you run into this error:

$ xcrun: error: invalid active developer path (/Library/Developer/CommandLineTools)
$ missing xcrun at: /Library/Developer/CommandLineTools/usr/bin/xcrun

You need to install XCode by running:

$ xcode-select --install

Once go get has finished, run:

$ cd $GOPATH/src/github.com/qri-io/qri
$ make build
$ go install

The make build command will have a lot of output. That's good! Its means it's working :)

It'll take a minute, but once everything's finished a new binary qri will appear in the $GOPATH/bin directory. You should be able to run:

$ qri help

and see help output.

Developing

We've set up a separate document for developer guidelines!

Troubleshooting

Please see our troubleshooting document for fixes to common issues setting up and running qri.

About

distributed dataset version control system on IPFS

https://qri.io

License:GNU General Public License v3.0


Languages

Language:Go 99.5%Language:Makefile 0.4%Language:Shell 0.1%