Visit qri.io


Description of a running qri process


The core of a runnign qri program is an instance. A an instance is a composition of subsystems that make up core business logic of Qri in a running program. Instances are singletons, with only one running at a time in a given process, making them the ultimate lock on contested resources.

Instances manage configuration

Creating an instance requires a valid qri configuration, which includes

Instance Methods

An instance method (or just "method" for short) is a function defined on an instance. Methods are user-facing abstractions of business logic like Save or Remove.


Qri methods are a logical grouping of functions that relate to one another. Long-running qri processes can make methods available as Remote Procedure Calls (RPC) over a network socket. In this document we define methods as a gRPC service. For example:

service DatasetWrite {
  rpc Save (SaveRequest) returns (SaveResponse) {}
  rpc Remove (RemoveRequest) returns (RemoveResponse) {}
  rpc Rename (RenameRequest) returns (RenameResponse) {}

Protcol Buffers

This document expresses services & data structures as protocol buffers to keep definitions language agnostic, but these are currently for presentational purposes only. The qri spec doesn't state that implementations use protocol buffers.