Network Automation Ecosystem

A unified ecosystem of seven Rust and Python tools for network topology generation, modeling, protocol simulation, traffic analysis, and visualization.

Contents


Overview

The ecosystem is evolving from a collection of standalone tools into a Composable Network Toolchain. It follows the Linux philosophy—specialized tools that do one thing well—orchestrated by an IDE-level experience (The Workbench).

Core Architectural Tenets

  1. Standard-Agnostic Core: The Network Topology Engine (NTE) acts as a universal translator, capable of ingesting data from NetBox, ContainerLab, or custom sources.
  2. Logical-to-Physical Decoupling: We split Physical Topology from Logical Intent, decoupling engineering logic from specific vendor hardware.
  3. Hyper-Composable Entry Points: Pull from a Source of Truth $\rightarrow$ Visualize; Generate from scratch $\rightarrow$ Simulate; Capture live state $\rightarrow$ Analyze capacity.

The Composable Toolchain

┌─────────────────────────────────────────────────────────────────────────┐
                     Network Automation Workbench                        
              (FastAPI + React · Orchestration · Web UI)                  
                                                                         
  ┌──────────┐  ┌──────────────┐  ┌────────────┐  ┌──────────────────┐  
   Topology     Modeling &      Protocol     Visualisation      
   Editor       Config          Simulator    Explorer           
  └────┬─────┘  └──────┬───────┘  └─────┬──────┘  └────────┬─────────┘  
└───────┼────────────────┼────────────────┼──────────────────┼────────────┘
                                                          
   subprocess        Python API      subprocess         subprocess
                                                          
┌───────▼────────┐ ┌─────▼──────────┐ ┌──▼───────────┐ ┌───▼──────────┐
   topogen         autonetkit        netsim         netvis     
                                                               
 9 generators     Pydantic models  OSPF, IS-IS    5 layout     
 Traffic matrix   Query DSL       BGP, MPLS      algorithms   
 Vendor naming    Config gen      SR, RSVP-TE    SVG/PNG/PDF  
 ContainerLab     Blueprints      L3VPN, BFD     WASM target  
 export           Compiler        gRPC daemon    Edge bundling
└───────┬────────┘ └──────┬────────┘  BMP telemetry └──────────────┘
                                   └──────────────┘
                   ┌─────▼────────┐
                        NTE      
                                 
                    petgraph     
                    Polars DFs   
                    Query engine 
                    Pluggable    
                    datastores   
                   └──────────────┘
        
┌───────▼────────┐
  netflowsim    
                
 Queuing models 
 Monte Carlo    
 FIB path trace 
 Rayon parallel 
└────────────────┘

Data flows top-to-bottom. The Workbench sits above all tools as the orchestration layer. autonetkit consumes NTE as a Rust dependency. topogen feeds generated topologies into autonetkit, netsim, netflowsim, and netvis. netsim validates routing behavior. netflowsim analyzes traffic performance. netvis renders the results.


The Tools

Topology Generator

v0.10 — Phase 21/24 · Full Details →

What It Is: A Rust library with Python bindings for generating realistic network topologies. Supports data center (fat-tree, leaf-spine), WAN/backbone (ring, mesh, hierarchical, POP), and random graph patterns (Barabasi-Albert, Watts-Strogatz). Includes traffic matrix generation using gravity models and ContainerLab output converters.


CLI Scrape — Network Device Output Parser

Phase 1 — Foundation · Full Details →

What It Is: Rust-based CLI scraping and parsing tool for network devices. TextFSM-compatible state machine parser with 10-50x faster execution than Python implementations. Includes interactive TUI debugger for template development and modern YAML/TOML template format.

Key Features:

Current Status: Phase 1 — defining lexer/parser for TextFSM files

Tech Stack: Rust, regex, ratatui


Network Configuration Parser

Phase 1 — Ingestion · Full Details →

What It Is: A framework for parsing legacy CLI configurations into vendor-agnostic models. Uses layout-aware PDF extraction (MinerU) to build a searchable knowledge base of vendor manuals in ChromaDB, enabling AI-assisted normalization of legacy state.


AutoNetkit

v1.8 — Shipped | v1.10 in progress · Full Details →

What It Is: A Python library for modeling and querying network topologies with type-safe Pydantic models and a Rust core. Expressive Python API backed by compiled graph algorithms (petgraph), with automatic configuration generation for multi-vendor network deployments (Cisco, Juniper, Arista, Nokia, SONiC).


Network Topology Engine

Stable · Full Details →

What It Is: The Rust graph engine that powers the ecosystem. Provides native-speed topology operations exposed to Python through PyO3 bindings. Features a workspace of specialized crates for graph primitives (nte-graph), query execution (nte-query), and pluggable storage backends (Polars, DuckDB, Lite).


Network Simulator — Protocol Validation

v1.8 — Data Center Fabric & EVPN · Full Details →

What It Is: A deterministic, tick-based network simulator for rapid prototyping. Simulates OSPF, IS-IS, BGP, MPLS/LDP, and Segment Routing with packet-level accuracy. Enables sub-second validation of network convergence without the overhead of container-based emulation.


Network Traffic Simulator — Flow-Based Performance Analysis

Phase 3/5 — Active Development · Full Details →

What It Is: Flow-based network traffic simulator using analytic queuing models (M/M/1, M/D/1) and Monte Carlo simulations. Validates topologies and routing strategies against billions of flow iterations in seconds, providing massive-scale network performance analysis.


Network Visualization Engine

v1.3 — Embed Readiness & API Stability · Full Details →

What It Is: A Rust-based network topology layout and visualization engine. Renders complex multi-layer networks using advanced layout algorithms (force-directed, hierarchical, geographic, radial, isometric) with high-quality static output (SVG, PDF, PNG) and WASM targets.


Network Automation Workbench

v1.3 — Tool Integration & Interactive Workflows · Full Details →

What It Is: A platform that integrates the entire network automation ecosystem into a single workflow. Driven from YAML, a text-based TUI, or the web interface—upload topology YAML, visualize the network, run simulations, and analyze results without switching between tools.


AutoNetkit — The Foundation

PhD 2017 · Full Details →

What It Is: The original compiler-based network automation tool from my PhD research. Introduced declarative network design with the Whiteboard → Plan → Build transformation model. Integrated into Cisco’s VIRL platform for automated multi-vendor lab provisioning.


1. Rapid Prototyping

Generate a topology structure with topogen, validate that protocols converge in netsim in seconds, and visualize the resulting state with netvis.

2. Design-to-Deploy

Model a network declaratively in autonetkit, transform through protocol layers (ISIS, MPLS, EVPN), generate multi-vendor configurations, and validate the entire design in netsim before deploying to production or container labs.

3. Traffic Engineering

Analyze capacity at scale by computing forwarding paths from netsim FIBs, running Monte Carlo simulations in netflowsim against traffic demands, and visualizing link utilization heatmaps in netvis.

4. Interactive Exploration

Use the Workbench as a unified interface to edit topology YAML with live validation, trigger simulations, and attach to interactive device terminals via the netsim gRPC daemon.


← Back to Projects