Travis CI

Implementation of multibase -self identifying base encodings- in Go.


go-multibase is a standard Go module which can be installed with:

go get


Contributions welcome. Please check out the issues.

Check out our contributing document for more information on how we work, and about contributing in general. Please be aware that all interactions related to multiformats are subject to the IPFS Code of Conduct.

Small note: If editing the README, please conform to the standard-readme specification.


MIT © 2016 Protocol Labs Inc.

Expand ▾ Collapse ▴




View Source
const (
	Identity          = 0x00
	Base2             = '0'
	Base8             = '7'
	Base10            = '9'
	Base16            = 'f'
	Base16Upper       = 'F'
	Base32            = 'b'
	Base32Upper       = 'B'
	Base32pad         = 'c'
	Base32padUpper    = 'C'
	Base32hex         = 'v'
	Base32hexUpper    = 'V'
	Base32hexPad      = 't'
	Base32hexPadUpper = 'T'
	Base36            = 'k'
	Base36Upper       = 'K'
	Base58BTC         = 'z'
	Base58Flickr      = 'Z'
	Base64            = 'm'
	Base64url         = 'u'
	Base64pad         = 'M'
	Base64urlPad      = 'U'

    These are the encodings specified in the standard, not are all supported yet


    View Source
    var EncodingToStr = map[Encoding]string{
    	0x00: "identity",
    	'0':  "base2",
    	'f':  "base16",
    	'F':  "base16upper",
    	'b':  "base32",
    	'B':  "base32upper",
    	'c':  "base32pad",
    	'C':  "base32padupper",
    	'v':  "base32hex",
    	'V':  "base32hexupper",
    	't':  "base32hexpad",
    	'T':  "base32hexpadupper",
    	'k':  "base36",
    	'K':  "base36upper",
    	'z':  "base58btc",
    	'Z':  "base58flickr",
    	'm':  "base64",
    	'u':  "base64url",
    	'M':  "base64pad",
    	'U':  "base64urlpad",

      EncodingToStr is a map of the supported encoding, unsupported encoding specified in standard are left out

      View Source
      var Encodings = map[string]Encoding{}
      View Source
      var ErrUnsupportedEncoding = fmt.Errorf("selected encoding not supported")

        ErrUnsupportedEncoding is returned when the selected encoding is not known or implemented.


        func Encode

        func Encode(base Encoding, data []byte) (string, error)

          Encode encodes a given byte slice with the selected encoding and returns a multibase string (<encoding><base-encoded-string>). It will return an error if the selected base is not known.


          type Encoder

          type Encoder struct {
          	// contains filtered or unexported fields

            Encoder is a multibase encoding that is verified to be supported and supports an Encode method that does not return an error

            func EncoderByName

            func EncoderByName(str string) (Encoder, error)

              EncoderByName creates an encoder from a string, the string can either be the multibase name or single character multibase prefix

              func MustNewEncoder

              func MustNewEncoder(base Encoding) Encoder

                MustNewEncoder is like NewEncoder but will panic if the encoding is invalid.

                func NewEncoder

                func NewEncoder(base Encoding) (Encoder, error)

                  NewEncoder create a new Encoder from an Encoding

                  func (Encoder) Encode

                  func (p Encoder) Encode(data []byte) string

                    Encode encodes the multibase using the given Encoder.

                    func (Encoder) Encoding

                    func (p Encoder) Encoding() Encoding

                    type Encoding

                    type Encoding int

                      Encoding identifies the type of base-encoding that a multibase is carrying.

                      func Decode

                      func Decode(data string) (Encoding, []byte, error)

                        Decode takes a multibase string and decodes into a bytes buffer. It will return an error if the selected base is not known.


                        Path Synopsis