|
1 |
| -# jdiff |
| 1 | +# Jdiff |
2 | 2 |
|
3 |
| -`jdiff` is a lightweight Python library allowing you to examine structured data. `jdiff` provides an interface to intelligently compare--via key presense/absense and value comparison--JSON data objects |
| 3 | +<p align="center"> |
| 4 | + <img src="https://raw.githubusercontent.com/networktocode/jdiff/develop/docs/images/jdiff_logo.png" class="logo" height="200px"> |
| 5 | + <br> |
| 6 | + <a href="https://github.com/networktocode/jdiff/actions"><img src="https://github.com/networktocode/jdiff/actions/workflows/ci.yml/badge.svg?branch=main"></a> |
| 7 | + <a href="https://jdiff.readthedocs.io/en/latest"><img src="https://readthedocs.org/projects/jdiff/badge/"></a> |
| 8 | + <a href="https://pypi.org/project/jdiff/"><img src="https://img.shields.io/pypi/v/jdiff"></a> |
| 9 | + <a href="https://pypi.org/project/jdiff/"><img src="https://img.shields.io/pypi/dm/jdiff"></a> |
| 10 | + <br> |
| 11 | +</p> |
4 | 12 |
|
5 |
| -Our primary use case is the examination of structured data returned from networking devices, such as: |
| 13 | +## Overview |
6 | 14 |
|
7 |
| -* Compare the operational state of network devices pre and post change |
8 |
| -* Compare operational state of a device vs a "known healthy" state |
9 |
| -* Compare state of similar devices, such as a pair of leafs or a pair of backbone routers |
10 |
| -* Compare operational state of a component (interface, vrf, bgp peering, etc.) migrated from one device to another |
| 15 | +`jdiff` is a lightweight Python library allowing you to examine structured data. `jdiff` provides an interface to intelligently compare JSON data objects and test for the presence (or absence) of keys. You can also examine and compare corresponding key-values. |
11 | 16 |
|
12 |
| -However, the library fits other use cases where structured data needs to be operated on. |
13 |
| - |
14 |
| -## Installation |
15 |
| - |
16 |
| -Install from PyPI: |
17 |
| - |
18 |
| -``` |
19 |
| -pip install jdiff |
20 |
| -``` |
| 17 | +## Documentation |
21 | 18 |
|
22 |
| -## Intelligent Comparison |
| 19 | +Full web-based HTML documentation for this library can be found over on the [Jdiff Docs](https://jdiff.readthedocs.io) website: |
23 | 20 |
|
24 |
| -The library provides the ability to ask more intelligent questions of a given data structure. Comparisons of data such as "Is my pre change state the same as my post change state", is not that interesting of a comparison. The library intends to ask intelligent questions _like_: |
| 21 | +- [User Guide](https://jdiff.readthedocs.io/en/latest/user/lib_overview/) - Overview, Using the library, Getting Started. |
| 22 | +- [Administrator Guide](https://jdiff.readthedocs.io/en/latest/admin/install/) - How to Install, Configure, Upgrade, or Uninstall the library. |
| 23 | +- [Developer Guide](https://jdiff.readthedocs.io/en/latest/dev/contributing/) - Extending the library, Code Reference, Contribution Guide. |
| 24 | +- [Release Notes / Changelog](https://jdiff.readthedocs.io/en/latest/admin/release_notes/). |
| 25 | +- [Frequently Asked Questions](https://jdiff.readthedocs.io/en/latest/user/faq/). |
25 | 26 |
|
26 |
| -* Is the route table within 10% of routes before and after a change? |
27 |
| -* Is all of the interfaces that were up before the change, still up? |
28 |
| -* Are there at least 10k sessions of traffic on my firewall? |
29 |
| -* Is there there at least 2 interfaces up within lldp neighbors? |
| 27 | +### Contributing to the Docs |
30 | 28 |
|
31 |
| -## Technical Overview |
| 29 | +All the Markdown source for the library documentation can be found under the [docs](https://github.com/networktocode/jdiff/tree/develop/docs) folder in this repository. For simple edits, a Markdown capable editor is sufficient - clone the repository and edit away. |
32 | 30 |
|
33 |
| -The library heavily relies on [JMESPath](https://jmespath.org/) for traversing the JSON object and finding the values to be evaluated. More on that [here](#customized-jmespath). |
| 31 | +If you need to view the fully generated documentation site, you can build it with [mkdocs](https://www.mkdocs.org/). A container hosting the docs will be started using the invoke commands (details in the [Development Environment Guide](https://jdiff.readthedocs.io/en/latest/dev/dev_environment/#docker-development-environment)) on [http://localhost:8001](http://localhost:8001). As your changes are saved, the live docs will be automatically reloaded. |
34 | 32 |
|
35 |
| -`jdiff` has been developed around diffing and testing structured data returned from Network APIs and libraries (such as TextFSM) but is equally useful when working or dealing with data returned from APIs. |
| 33 | +Any PRs with fixes or improvements are very welcome! |
36 | 34 |
|
37 |
| -## Documentation |
| 35 | +## Questions |
38 | 36 |
|
39 |
| -Documentation is hosted on Read the Docs at [jdiff Documentation](https://jdiff.readthedocs.io/). |
| 37 | +For any questions or comments, please check the [FAQ](https://jdiff.readthedocs.io/en/latest/user/faq/) first. Feel free to also swing by the [Network to Code Slack](https://networktocode.slack.com/) (channel `#networktocode`), sign up [here](http://slack.networktocode.com/) if you don't have an account. |
0 commit comments