YANG Tools is to develop necessary tooling and libraries to provide Java runtime and support for YANG modeling language, data structures modeled by YANG and their serialization and deserialization as defined in IETF drafts and standards.
- parsing of YANG sources and semantic inference of relationship across YANG models as defined in RFC6020
- representation of YANG-modeled data in Java
- DOM-like APIs - DOM-like tree model, which uses conceptual meta-model
- Java Bindings - Concrete data model generated from YANG models
- serialization / deserialization of YANG-modeled data driven by YANG models
- XML - as defined in RFC6020 and revised in RFC7950
- JSON - as defined in draft-lhotka-netmod-yang-json-01 and standardized in RFC7951
- Integration of YANG model parsing into Maven build lifecycle and support for third-party generators processing YANG models.
There are sorts of things here:
- basic project infrastructure, including
- the BOM
- bnd-based parent
- bundle-based parent
- our documentation subproject
- Karaf features
- Karaf distribution meant for local testing
- a few baseline libraries useful without much other context
- a YANG-opinionated XSD XPath library
- our take on a YANG metamodel supporting both as-declared and as-effective views on a set of YANG/YIN files
- corresponding YANG parser, which really is a compiler, capable of turning a set of YANG/YIN file sources into a YANG metamodel instance
- our take on a model of YANG-normalized data and its streaming format
- corresponding serialization codecs to and from various serialization formats
- our take on type-safe Java Bindings for YANG with split compile-time and run-time parts
- a Maven plugin for packaging YANG files with derived code and resources