Back to

Package descriptor

Latest Go to latest

The latest major version is .

Published: Jul 1, 2019 | License: BSD-3-Clause | Module:


Package descriptor provides functions for obtaining protocol buffer descriptors for generated Go types.

These functions cannot go in package proto because they depend on the generated protobuf descriptor messages, which themselves depend on proto.

Example (Options)


package main

import (
	tpb ""

func main() {
	var msg *tpb.MyMessageSet
	_, md := descriptor.ForMessage(msg)
	if md.GetOptions().GetMessageSetWireFormat() {
		fmt.Printf("%v uses option message_set_wire_format.\n", md.GetName())

MyMessageSet uses option message_set_wire_format.



func ForMessage

func ForMessage(msg Message) (fd *protobuf.FileDescriptorProto, md *protobuf.DescriptorProto)

ForMessage returns a FileDescriptorProto and a DescriptorProto from within it describing the given message.

type Message

type Message interface {
	Descriptor() ([]byte, []int)

Message is a proto.Message with a method to return its descriptor.

Message types generated by the protocol compiler always satisfy the Message interface.

Package Files

Documentation was rendered with GOOS=linux and GOARCH=amd64.

Jump to identifier

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to identifier