multiformats

Crates.iomultiformats
lib.rsmultiformats
version0.1.0
sourcesrc
created_at2020-09-11 13:28:25.15012
updated_at2020-11-15 15:26:32.175904
descriptionMultiformat specifications in rust-lang
homepage
repositoryhttps://github.com/bnclabs/multiformats
max_upload_size
id287369
size207,828
(prataprc)

documentation

https://docs.rs/multiformats/

README

Documentation

Multiformats

A collection of protocols which aim to future-proof systems, today. They do this mainly by enhancing format values with self-description. This allows interoperability, protocol agility, and helps us avoid lock in.

The self-describing aspects of the protocols have a few stipulations:

  • They MUST be in-band (with the value); not out-of-band (in context).
  • They MUST avoid lock-in and promote extensibility.
  • They MUST be compact and have a binary-packed representation.
  • They MUST have a human-readable representation.

Unsigned-varint

VARiable INTeger format used in all the multiformats. The encoding is:

  • Unsigned integers are serialized 7 bits at a time, starting with the least significant bits.
  • The most significant bit (msb) in each output byte indicates if there is a continuation byte (msb = 1).
  • There are no signed integers.
  • Integers are minimally encoded.

Refer unsigned-varint spec for details.

Multibase

Base encoding is converting binary-data to plain-text. There are several base-encoding definitions that can convert binary-data to a small subset of, typically, ASCII code. Purpose,

  • Printable character set.
  • A bridge to backward-compatibility.
  • When a channel cannot, do-not, allow binary data.

Refer multibase for details.

Multicodec

Multicodec is an agreed-upon codec table. It is designed for use in binary representations, such as keys or identifiers (i.e CID). Find the canonical table of multicodecs at table.csv.

Refer multicodec spec for details.

Reference:

List of active multiformat specification(s).

There are other implementations that can suite your need better:

Commit count: 9

cargo fmt