Documentation ¶
Overview ¶
Godless is a peer-to-peer database running over IPFS.
Godless uses a Consistent Replicated Data Type called a Namespace to share schemaless data with peers.
Godless is in alpha, and should be considered experimental software.
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func MakeKeyStore ¶
Types ¶
type Godless ¶
type Godless struct { Options // contains filtered or unexported fields }
Godless is a peer-to-peer database. It shares structured data between peers, using IPFS as a backing store. The core datastructure is a CRDT namespace which resembles a relational scheme in that it has tables, rows, and entries.
func New ¶
New creates a godless instance, connecting to any services, and providing any services, specified in the options.
type Options ¶
type Options struct { // IpfsServiceUrl is required, unless specifying your own DataPeer or RemoteStore. IpfsServiceUrl string // DataPeer is optional. If specified, none of the IPFS options will be used. DataPeer api.DataPeer // RemoteStore is optional. If specified, the DataPeer will not be used, nor any of the IPFS options. RemoteStore api.RemoteStore // KeyStore is required. A private Key store. KeyStore api.KeyStore // MemoryImage is required. MemoryImage api.MemoryImage // WebServiceAddr is optional. If not set, the webservice will be disabled. WebServiceAddr string // IndexHash is optional. Set to load an existing index from IPFS. IndexHash string // FailEarly will cause the godless process to crash if it cannot contact IPFS on startup. FailEarly bool // ReplicateInterval is optional. The duration between peer-to-peer replications. ReplicateInterval time.Duration // Pulse is optional. The duration between flushes of the index to IPFS. Pulse time.Duration // Topics is optional. Two godless servers which share a topic will replicate indices. An empty topics slice will disable replication. Topics []string // IpfsClient is optional. Specify a HTTP client for IPFS. IpfsClient *gohttp.Client // IpfsPingTimeout is optional. Specify a lower timeout for "Am I Connected?" checks. IpfsPingTimeout time.Duration // Functions is optional. Functions function.FunctionNamespace // Cache is optional. Build a 12-factor app by supplying your own remote cache. // HeadCache, IndexCache and NamespaceCache can be used to specify different caches for different data types. Cache api.Cache // PriorityQueue is optional. Build a 12-factor app by supplying your own remote cache. PriorityQueue api.RequestPriorityQueue // ApiConcurrency is optional. Tune performance by setting the number of simultaneous queries. ApiConcurrency int // PublicServer is optional. If false, the index will only be updated from peers who are in your public key list. PublicServer bool // WebService is optional. WebService api.WebService // contains filtered or unexported fields }
Godless options.
Directories ¶
Path | Synopsis |
---|---|
This is a test-only package.
|
This is a test-only package. |
internal
|
|
Package proto is a generated protocol buffer package.
|
Package proto is a generated protocol buffer package. |
Click to show internal directories.
Click to hide internal directories.