Protobuf definitions for the Envoy data plane API.
Can be used to parse/generate Envoy configuration files or to implement control plane servers using gRPC.
The definitions are generated by pulling the official data-plane-api
repository, and using buf
to handle dependencies run the code generation.
The Elixir code is generated using the protobuf library, and it also depends on the grpc and the google_protos libraries.
Here is a simple example of how to use the generated code to parse the
/config_dump
endpoint of Envoy's admin API:
Mix.install([:req, :jason, :envoy_data_plane_api])
config_dump =
"http://my_envoy_server:8001/config_dump"
|> Req.get!()
|> then(& &1.body)
|> Protobuf.JSON.decode!(Envoy.Admin.V3.ConfigDump)
The package can be installed by adding envoy_data_plane_api
to your list
of dependencies in mix.exs
:
def deps do
[
{:envoy_data_plane_api, "~> 0.1.0"}
]
end
The docs can be found at https://hexdocs.pm/envoy_data_plane_api.