you're invited to a data party!
Branch: master
Clone or download
dustmop fix(get): Get returns 404 if dataset is not found
Merge pull request #695 from qri-io/reg-get-404
Latest commit 870a8e8 Feb 20, 2019
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.circleci chore(deps): cafs moved into qfs Feb 3, 2019
actions chore(fmt): Run go fmt, fix broken save_test, add descriptions Feb 12, 2019
api
base chore(fmt): Run go fmt, fix broken save_test, add descriptions Feb 12, 2019
cmd fix(list): Improve usability of `list` command Feb 15, 2019
config feat(config.Store): support store options to enable ipfs api & pubsub Jan 22, 2019
docs docs: update package definition documentation Jan 21, 2019
lib fix(export): Export --zip flag Feb 13, 2019
p2p chore(fmt): Run go fmt, fix broken save_test, add descriptions Feb 12, 2019
repo chore(fmt): Run go fmt, fix broken save_test, add descriptions Feb 12, 2019
rev fix(remove): Flag --all as an alias for --revisions=all. More tests Jan 14, 2019
.codeclimate.yml chore(codeclimate): add initial codeclimate configuration Mar 9, 2018
.gitignore chore(ci): initial setup for circleci integration Nov 8, 2017
CHANGELOG.md chore(release): release v0.7.0 Feb 5, 2019
CONTRIBUTOR.md docs(*): updating errors in docs Nov 30, 2018
DEVELOPERS.md
Dockerfile refactor(manifest, dsync): move manifest & dsync code to new dag repo Dec 5, 2018
LICENSE feat(license): switch project license to GPLv3 Feb 2, 2018
Makefile chore(makefile): update deps should update registry code Feb 4, 2019
README.md docs(README): Change contributor link (#685) Feb 7, 2019
code_of_conduct.md docs: adding intial documentation for release Nov 8, 2017
codecov.yml test(race): disable race detector & enable PING p2p test Mar 3, 2018
main.go docs: update package definition documentation Jan 21, 2019
package.json feat(bsync): initial block-sync sketched out Dec 5, 2018
troubleshooting.md docs(troubleshooting): add note on $GOPATH/bin not in $PATH Jan 9, 2019

README.md

qri

Qri GoDoc License Codecov CI

Qri Backend and CLI

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

Welcome

Question Answer
"I want to learn about Qri" Read the official documentation
"I want to download Qri" Download Qri
"I have a question" Create an issue and use the label 'question'
"I found a bug" Create an issue and use the label 'bug'
"I want to help build the Qri backend" Read the Contributing guides
"I want to build Qri from source" Build Qri from source

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.

Packages

Qri is comprised of many specialized packages. Below you will find a summary of each package.

Package Go Docs Go Report Card Description
actions Go Docs report functions that call to the repo to carry out tasks
api Go Docs report user accessible layer, primarily made for communication with our frontend webapp
cmd Go Docs report our command line interface
config Go Docs report user configuration details, includes peer's profile
lib Go Docs report takes arguments from the cmd and api layer and forms proper requests to call to the action layer
p2p Go Docs report the peer to peer communication layer of qri
repo Go Docs report the repository: saving, removing, and storing datasets, profiles, and the config
dataset Go Docs report the blueprint for a dataset, the atoms that make up qri
registry Go Docs report the blueprint for a registry: the service that allows profiles to be unique and datasets to be searchable
startf Go Docs report brings starlark into qri to be used in transforms, adds qri specific functionality
starlib Go Docs report the starlark standard library available for qri transform scripts
qfs Go Docs report "qri file sytem" is Qri's file system abstraction for getting & storing data from different sources
ioes Go Docs report package to handle in, out, and error streams: gives us better control of where we send output and errors
dsdiff Go Docs report the dataset diffing package
jsonschema Go Docs report used to describe the structure of a dataset, so we can validate datasets and determine dataset interop

Outside Libraries

The following packages are not under Qri, but are important dependencies, so we display their latest versions for convenience.

Package Version
ipfs ipfs version

Building From Source

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

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

If you are building from source by cloning the repo, make sure to clone the repo to your go path: $GOPATH/src/github.com/qri-io/qri.

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.

This documentation has been adapted from the Cycle.js documentation.