• Stars
    star
    188
  • Rank 201,587 (Top 5 %)
  • Language
    JavaScript
  • License
    Other
  • Created over 9 years ago
  • Updated over 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Contains ESnet network mapping and circuit rendering code, as used in the ESnet portal.

React Network Diagrams

Build Status npm version

This repository contains an initial set of React circuit drawing and network mapping components which are used within the ESnet Portal, but are not tied to ESnet, or even to network visualization.

The mapping portion of this library is used in the public facing ESnet Portal. The circuit diagrams code us used internally to track ESnet circuits in the ESDB.

Current features of the library include:

  • Circuit diagrams:
    • Basic
    • Concatenated
    • Parallel
  • Circuit couplers
  • Patch panel diagrams
  • Topology mapping
    • Higher level network traffic visualization
    • Linear, arc, bidirectional traffic and square edge types
  • Route rendering

Please browse the examples for a feel for the library, or read on to get started.

Getting started

The charts library is intended to be used with npm and the built into your project with something like webpack.

npm install react-network-diagrams --save

Once installed, you can import the necessary components from the library:

import { TrafficMap } from "react-network-diagrams";

You can then render() the traffic map in your component:

<TrafficMap width={980} height={500} margin={50}
            topology={topo}
            traffic={traffic}
            edgeColorMap={edgeColorMap}
            edgeDrawingMethod="bidirectionalArrow"
            edgeThicknessMap={edgeThicknessMap}
            edgeShapeMap={edgeShapeMap}
            nodeSizeMap={nodeSizeMap}
            nodeShapeMap={nodeShapeMap}
            stylesMap={stylesMap}
            selection={mapSelection}
            onSelectionChange={this.handleSelectionChanged} />

See the examples for more information.

Examples

To run the examples yourself, from the main directory, you first need to run these commands in the specific order:

npm install lerna
lerna exec npm install
lerna bootstrap

This will bootstrap the packages in the current Lerna repo and install the development dependencies into your node_modules directory.

You can then start up the test server, as well as automatic source building, by doing:

npm run start

And now, for the magic, point your browser to:

http://localhost:3000/

From now on, if you change the source code for the examples section, the examples bundle will be rebuilt and the browser will refresh itself. Errors will also be reported in the browser window.

If you want to change the react-network-diagrams code, you will need to run npm run build after working on your changes and then, the browser running the examples should reflect the changes.

For changes within the main library, run the following commands before committing the code:

npm run build
npm run docs (if there's changes to the API documentation)

If there are changes to the website, run npm run build from the packages/website directory before merging to master.

Once this is done, you can make a pull request to merge this code into the master branch

Release Process

Deploying a new version

Merge all the changes you want to deploy into the master branch.

Make sure to add release notes in CHANGELOG.md

Then, from the top level directory, run

lerna publish

As part of this command, it will ask you the version number you want to pick.

Once that is selected, it will update the relevant package.json files and push code to github as well as deploy a new release to npm.

Deploying the website

Currently, the website that hosts the examples and documentation can be found here - http://software.es.net/react-network-diagrams

This is being served via github pages, from the branch gh-pages-latest. Make sure to merge the latest code from master into this branch and it should automatically deploy the latest website.

More Repositories

1

iperf

iperf3: A TCP, UDP, and SCTP network bandwidth measurement tool
C
6,519
star
2

react-timeseries-charts

Declarative and modular timeseries charting components for React
JavaScript
855
star
3

gdg

Grafana Dashboard Manager
Go
314
star
4

pond

Immutable timeseries data structures built with Typescript
TypeScript
204
star
5

esnet-smartnic-hw

ESnet SmartNIC hardware design repository.
SystemVerilog
36
star
6

react-dynamic-forms

Dynamic forms library for React
JavaScript
36
star
7

dpdk-plugin

C++
22
star
8

EScp

Rust
17
star
9

zeek-exporter

Prometheus Exporter for Zeek
C++
16
star
10

enos

ESnet Network Operating System (NOT ACTIVELY MAINTAINED)
Python
15
star
11

xilinx-tools-docker

Docker image containing Xilinx build tools
Dockerfile
13
star
12

zeek-dpdk

11
star
13

grafana-esnet-networkmap-panel

A geographic bidirectional network map based on d3 and leaflet
JavaScript
11
star
14

oscars

Java
11
star
15

esnet-perfsonar-mesh

Shell
9
star
16

react-axis

Axis components built for React
JavaScript
9
star
17

TCP-monitor

Simple Python Program to monitor TCP sockets
Python
8
star
18

react-timeseries-barchart

A horizontal barchart that summarizes a list of TimeSeries objects
JavaScript
7
star
19

esnet-fpga-library

ESnet general-purpose FPGA design library.
SystemVerilog
7
star
20

simple-lookup-service

sLS code
Java
7
star
21

docker

Files for various Science DMZ use cases. This repository is no longer being maintained and serves as an example only.
7
star
22

esnet-smartnic-fw

ESnet SmartNIC firmware design repository.
C
6
star
23

netshell

Kernel and companion software that support ENOS applications (NOT ACTIVELY MAINTAINED)
Java
6
star
24

react-timeseries-table

Got a TimeSeries? Build a Table.
JavaScript
6
star
25

mini-portal

Demonstration of toolkits used to build the MyESnet portal.
JavaScript
5
star
26

sense-rtmon

Custom Scripts for Dynamic End-To-End Flow-Specific Grafana Dashboards
Python
5
star
27

sans-holiday-hack-2018

ESnet Security Team's SANS Holiday Hack 2018 Report
HTML
5
star
28

pypond

A python library to manipulate and transmit time-series data.
Python
5
star
29

nml-mrml

MRML: Multi-Resource Markup Language - Modeling Schemas and Tools
Java
5
star
30

cookiecutter-zeekpackage

Cookiecutter template for Zeek packages
Python
5
star
31

arborq

Python library for querying Arbor PeakFlow devices.
Python
4
star
32

netgraf

Real-time network monitoring tool that uses machine learning
Jupyter Notebook
4
star
33

xilinx-qdma-for-opennic

Variant of Xilinx QDMA IP Drivers for DPDK that is compatible with Xilinx opennic-shell.
C
4
star
34

shibboleth_session_auth

Simplistic Shibboleth integration with Django sessions
Python
3
star
35

ansible_network_capture

Jinja
3
star
36

eZeeKonfigurator

Web-based configuration for your Zeek clusters
Python
3
star
37

sense-rm

SENSE Resource Manager
Java
3
star
38

esnet-arcdiagram-panel

An arch diagram panel plugin for Grafana
TypeScript
2
star
39

indira_networkIntent

Python
2
star
40

calibers

Exploring shaping traffic at the edge of the network
Jupyter Notebook
2
star
41

oscars-frontend

JavaScript
2
star
42

hylia_networkprediction

Jupyter Notebook
2
star
43

oscars-topology-json

Publishes the OSCARS NMWG topology and list of circuits in a JSON format
Python
2
star
44

regio

Tools for working with FPGA register maps (including code generators for C and SystemVerilog interfaces).
Python
2
star
45

workflow-databooks

Repository of sample data related to distributed data workflows for scientific research. Data is explained and exercise through a set of Jupyter notebooks. Anyone is invited to share relevant date, including all aspects of workflows, including but not limited, WAN, LAN, I/O, CPU, memory.
Jupyter Notebook
2
star
46

smartnic-dpdk-docker

Docker container with dpdk + xilinx qdma + pktgen-dpdk for use in high speed test setups
Dockerfile
2
star
47

hps-rl

Hyperparameter tuning for deep RL applications
Python
1
star
48

xilinx-labtools-docker

Docker image to provide Xilinx LabTools
Dockerfile
1
star
49

testing-harness

A harness for executing jobs across multiple hosts and collecting output.
Jupyter Notebook
1
star
50

docker-tooling

Misc tools that can be in your $PATH to make life easier
Shell
1
star
51

netpredict

Real-time network traffic prediction with deep learning
Jupyter Notebook
1
star
52

esviz

DEPRECATED. ESnet charts visualizations can be found at react-timeseries-charts.
JavaScript
1
star
53

esnet-matrix-panel

TypeScript
1
star
54

zeek_perfsonar_owamp

OWAMP protocol analyzer plugin for Bro/Zeek
JavaScript
1
star
55

arista-tapagg-ansible

HTML
1
star
56

hhc19

SANS Holiday Hack 2019
HTML
1
star
57

sense-nrm-oscars

Python
1
star
58

stardust-snmp-pipeline

The data processing pipeline the ESnet Stardust project uses to enrich data collected from SNMP.
Ruby
1
star
59

janus-client

Python
1
star
60

simpleML4Networks

examples for trying out multiple machine learning on network data sets
Jupyter Notebook
1
star