Skip to content

Protoc plugin to generate JSON representations of protobuf files

License

Notifications You must be signed in to change notification settings

trinsic-id/protoc-gen-json

Repository files navigation

protoc-gen-json

A protoc plugin which generates a JSON representation of protobuf files.

This is used by Trinsic to enable generation of rich documentation for our API objects, which are defined in proto files.

Usage

As with all protoc plugins, its usage is simple.

Placing in your PATH

The simplest option: simply place protoc-gen-json[.exe] somewhere that your PATH can see.

Then, invoke it:

protoc --json_out={OUTPUT_DIRECTORY} --json_opt={OUTPUT_FILENAME} [standard protoc flags follow]

Specifying path to plugin during protoc instantiation

protoc --plugin=protoc-gen-json={PATH_TO_EXECUTABLE} --json_out={OUTPUT_DIRECTORY} --json_opt={OUTPUT_FILENAME} [standard protoc flags follow]

Plugin Config

--json_out should point to the output directory, where you would like your output JSON file to be saved.

--json_opt (optional) is the output filename. Defaults to proto.json if not specified.

For example, --json_out=/foo/bar --json_opt=baz.json will write the output file to /foo/bar/baz.json.

Output Format

See OUTPUT.md for documentation about the output format.

Known Issues / Todo

  • Full Custom Option Support
    • Handle Options on all non-Field objects
    • Handle non-primitive Option types
    • Handle bytes Option types
  • Improved label handling (repeated/optional/etc.)
  • Add default value support

About

Protoc plugin to generate JSON representations of protobuf files

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published