# go-multicodec [![standard-readme compliant](https://img.shields.io/badge/readme%20style-standard-brightgreen.svg)](https://github.com/RichardLitt/standard-readme) > Generated Go constants for the [multicodec table](https://github.com/multiformats/multicodec) used by the [multiformats](https://github.com/multiformats/multiformats) projects. ## Table of Contents - [Install](#install) - [Type](#type) - [Usage](#usage) - [Importing Code constant](#importing-code-constant) - [Code from string](#code-from-string) - [Code from uint64](#code-from-uint64) - [Generator](#generator) - [With old table.csv](#with-old-tablecsv) - [With updated table.csv](#with-updated-tablecsv) - [Maintainers](#maintainers) - [Contribute](#contribute) - [License](#license) ## Install `go-multicodec` is a standard Go module: go get github.com/multiformats/go-multicodec ## Type `Code` describes an integer reserved in the multicodec table, defined at [multiformats/multicodec/table.csv](https://github.com/multiformats/multicodec/blob/master/table.csv). ```go type Code uint64 ``` ## Usage ### Importing Code constant ```go package main import "github.com/multiformats/go-multicodec" func main() { code := multicodec.Sha2_256 // Code name := multicodec.Sha2_256.String() } ``` The corresponding `name` value for each codec from the [multicodecs table](https://raw.githubusercontent.com/multiformats/multicodec/master/table.csv) can be accessed via its `String` method. For example, `multicodec.Sha2_256.String()` will return `sha2-256`. ### Code from string ```go var multicodec.Code code err := code.Set("libp2p-key") ``` ### Code from uint64 ```go rawCode := multicodec.Code(0x55) ``` ## Generator ### With old table.csv To generate the constants yourself: ```console $ git clone https://github.com/multiformats/go-multicodec $ cd go-multicodec $ git submodule init && git submodule update $ go generate ``` Note: You may need to install `stringer` via `go install golang.org/x/tools/cmd/stringer`. ### With updated table.csv To generate the constants for the latest [table.csv](https://github.com/multiformats/multicodec/blob/master/table.csv): ```console $ git clone https://github.com/multiformats/go-multicodec $ cd go-multicodec $ git submodule init $ git submodule update --remote # updates ./multicodec/table.csv to upstream version $ go generate ``` ## Maintainers [@mvdan](https://github.com/mvdan). ## Contribute Contributions welcome. Please check out [the issues](https://github.com/multiformats/go-multicodec/issues). Check out our [contributing document](https://github.com/multiformats/multiformats/blob/master/contributing.md) 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](https://github.com/ipfs/community/blob/master/code-of-conduct.md). Small note: If editing the README, please conform to the [standard-readme](https://github.com/RichardLitt/standard-readme) specification. ## License SPDX-License-Identifier: Apache-2.0 OR MIT