Subject: Open Source YANG / Streaming Telemetry Tooling

From: Rob Shakir <[email-masked]>
Date: Thu, 8 Nov 2018 10:34:07 +0700

Hi rtgwg,

Per my comments at the mic today, here's a selection of tooling and open
source that have been published around YANG and streaming telemetry:

   - ygot - github.com/openconfig/ygot - this is a toolset that generates
   Go bindings for YANG models. It has libraries for data instance validation,
   marshalling and unmarshalling of JSON (rfc7951), annotations, and tools to
   build a gNMI implementation around a known schema.
   - pyangbind - github.com/robshakir/pyangbind -- this is a toolset that
   generates Python bindings for YANG models, using pyang as the parser. It
   does data validation, and marshalling and unmarshalling of JSON and XML.
   - gNMI tooling -- github.com/openconfig/gnmi - this repository contains
   a number of tools implementing the gNMI protocol (spec
   <https://github.com/openconfig/reference/blob/master/rpc/gnmi/gnmi-specification.md>)
   in Go. In particular, it contains binaries that provide a CLI tool
   <https://github.com/openconfig/gnmi/tree/master/cmd/gnmi_cli>, and a caching
   collector
   <https://github.com/openconfig/gnmi/tree/master/cmd/gnmi_collector> for
   streaming telemetry that implements gNMI directly.
   - gNMI testing -- github.com/openconfig/gnmitest -- a test framework for
   configuration/telemetry functions of gNMI. This repo contains a service for
   performing gNMI implementation validation, as well as continuous testing.
   There is also a schema-aware fake gNMI target that can be used for
   integration testing.
   - panoptes <https://github.com/yahoo/panoptes> -- this was open sourced
   by Yahoo/Oath and is a metrics collector and enrichment service.

I have some engagement with most of these projects -- on behalf of all of
the contributors, I'm sure I can say that feedback, implementation
experience, or feature requests -- and especially code contributions! --
are very welcome.

Cheers,
r.