NetJSON
data interchange format for networks

Developing networking applications is way too hard, much harder than we should allow it to be.

NetJSON is a data interchange format based on JSON designed to ease the development of software networking tools.

NetJSON defines several types of JSON objects and the manner in which they are combined to represent a network: configuration of devices, monitoring data, network topology and routing information.

Our goal is to build an ecosystem of interoperable software tools that are able to work with the basic building blocks of layer2 and layer3 networks, enabling developers to build great networking applications faster.

{
    "type": "NetworkGraph",
    "protocol": "olsr",
    "version": "0.6.6",
    "revision": "5031a799fcbe17f61d57e387bc3806de",
    "metric": "etx",
    "router_id": "172.16.40.24",
    "nodes": [
        {
            "id": "172.16.40.24",
            "label": "node-A",
            "local_addresses": [
                "10.0.0.1",
                "10.0.0.2"
            ],
            "properties": {
                "hostname": "node1.my.net"
            }
        },
        {
            "id": "172.16.40.60",
            "label": "node-B",
            "properties": {
                "hostname": "node2.my.net"
            }
        }
    ],
    "links": [
        {
            "source": "172.16.40.24",
            "target": "172.16.40.60",
            "cost": 1.000,
            "cost_text": "1020  bit/s",
            "properties": {
                "lq": 1.000,
                "nlq": 0.497
            }
        }
    ]
}