Crate noosphere_core

source ·
Expand description

This crate embodies the core implementation of the Noosphere protocol.

It includes facilities to:

  • Get low-level access to Noosphere data structures (view and data)
  • Interact with a Noosphere Gateway (api::Client)
  • Read, update, and sync spheres via a high-level API (context)
  • And more!

Modules

  • This module contains data structures and client implementation for working with the REST API exposed by Noosphere Gateways.
  • Data types and helper routines related to general Noosphere authority concepts.
  • This module implements content, petname and other forms of acccess to spheres. If you have storage and network primitives on your platform, you can initialize a SphereContext and use it to work with and synchronize spheres, as well as traverse the broader Noosphere data graph.
  • Core data types in use by the Noosphere protocol. Data types in here represent the canonical structure of Noosphere data as expressed by block-encoded IPLD.
  • Noosphere errors
  • Utilities to support producing streams of blocks, as well as converting streams of blocks to and from CARv1-encoded byte streams
  • Helpers to wrangle logging across Noosphere crates NOTE: initialize_tracing should only ever be called in tests or binaries; a library should only concern itself with instrumentation and logging.
  • Views over raw Noosphere data to support efficient reading and traversal, as well as provide higher-level operations related to same.

Macros

  • A helper macro to quickly implement a common Display format for Noosphere Gateway REST API routes