qri-io / qri
- понедельник, 25 марта 2019 г. в 00:18:02
Go
you're invited to a data party!
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:
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:
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.
Qri is comprised of many specialized packages. Below you will find a summary of each package.
Package | Go Docs | Go Report Card | Description |
---|---|---|---|
actions |
functions that call to the repo to carry out tasks | ||
api |
user accessible layer, primarily made for communication with our frontend webapp | ||
cmd |
our command line interface | ||
config |
user configuration details, includes peer's profile | ||
lib |
takes arguments from the cmd and api layer and forms proper requests to call to the action layer | ||
p2p |
the peer to peer communication layer of qri | ||
repo |
the repository: saving, removing, and storing datasets, profiles, and the config | ||
dataset |
the blueprint for a dataset, the atoms that make up qri | ||
registry |
the blueprint for a registry: the service that allows profiles to be unique and datasets to be searchable | ||
startf |
brings starlark into qri to be used in transforms, adds qri specific functionality | ||
starlib |
the starlark standard library available for qri transform scripts | ||
qfs |
"qri file sytem" is Qri's file system abstraction for getting & storing data from different sources | ||
ioes |
package to handle in, out, and error streams: gives us better control of where we send output and errors | ||
dsdiff |
the dataset diffing package | ||
jsonschema |
used to describe the structure of a dataset, so we can validate datasets and determine dataset interop |
The following packages are not under Qri, but are important dependencies, so we display their latest versions for convenience.
Package | Version |
---|---|
ipfs |
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.