Well-known struct tags

Background

Go offers struct tags which are discoverable via reflection. These enjoy a wide range of use in the standard library in the JSON/XML and other encoding packages.

The community welcomed them and has built ORMs, further encodings, flag parsers and much more around them since, especially for these tasks, single-sourcing is beneficial for data structures.

Problem description

Due to increased usage of Go and thus Go struct tags, clashes become inevitable.

Solution

The list below is a best effort to document well-known struct tags used by packages which are available to the public.

Format of the list

Example entry

TagDocumentation
xmlhttps://godoc.org/encoding/xml

Change Management

List entries can be added by anyone who creates a public package where a new tag is used. List entries can be removed when the links to the package documentation stops working or the author(s) of that package requests it.

List of well-known struct tags

TagDocumentation
xmlhttps://godoc.org/encoding/xml
jsonhttps://godoc.org/encoding/json
asn1https://godoc.org/encoding/asn1
reformhttps://godoc.org/gopkg.in/reform.v1
bigqueryhttps://godoc.org/cloud.google.com/go/bigquery
datastorehttps://godoc.org/cloud.google.com/go/datastore
spannerhttps://godoc.org/cloud.google.com/go/spanner
bsonhttps://godoc.org/labix.org/v2/mgo/bson
gormhttps://godoc.org/github.com/jinzhu/gorm
yamlhttps://godoc.org/gopkg.in/yaml.v2