Batfish vs Nornir
Batfish
batfish.orgNornir
nornir.readthedocs.ioSide by side
| Figure | Batfish | Nornir |
|---|---|---|
| Price from | — | Free |
| Free plan | — | Yes |
| Free trial | — | — |
| Open source | — | — |
| Windows | Yes | — |
| macOS | Yes | Yes |
| Linux | Yes | Yes |
| API | Yes | — |
| Self-hosted | Yes | — |
| Plans published | 0 | 1 |
| Spec score · Data Center Networking Solutions | 8.0 (#2) | 7.5 (#8) |
| Spec score · Network Automation Software | 7.9 (#8) | 7.3 (#17) |
| Integrations | The maker documents Ansible modules for extracting and validating configuration facts and asserting network behavior in playbooks. | Community plugins support NAPALM, Netmiko, NetBox, Ansible inventories, Scrapli, Nautobot, and other systems and libraries. |
| License | Batfish is released under the Apache Software License, Version 2.0. | Nornir is distributed under the Apache-2.0 license. |
| Support | The maker directs users with questions or feature requests to its Slack community or GitHub repository. | Official support channels include GitHub issues and discussions, the OpsMill Discord #nornir channel, and a monitored Network to Code Slack channel. |
Plans
In their own words
Batfish
Batfish is an open-source tool for analyzing network device configurations and validating network behavior. It works from configuration files, so core analysis does not require direct access to network devices. Teams can inspect deployed configurations and check planned changes before deployment. Checks cover undefined references, MTU and AAA settings, template compliance, sensitive-service reachability and expected traffic paths. Batfish can test whether end-to-end reachability survives any single-link or single-device failure, compare current and planned reachability, assess ACL or firewall changes and evaluate functional equivalence across vendors. Pybatfish provides a Python 3 SDK, and example Jupyter notebooks are available. An all-in-one Docker container bundles Batfish and notebooks. It runs on operating systems supporting Docker. Documented support includes Arista, AWS, Azure, Cisco, Juniper, Palo Alto Networks and SONiC, while Aruba, Dell Force10 and Foundry have limited support.
Nornir
Nornir is a free, open-source Python automation framework for managing inventory and dispatching tasks to network nodes and devices. It is used directly from Python: inventories contain hosts, groups, and defaults, while reusable tasks accept a Task and return a Result. The included ThreadedRunner runs tasks across hosts with threads and defaults to 20 workers. Plugins cover inventories, transforms, connections, runners, and processors, with community integrations for NAPALM, Netmiko, NetBox, Ansible inventories, Scrapli, Nautobot, and other systems. Nornir supports configuration management, workflow orchestration, and network testing across platforms including Cisco IOS, Cisco NX-OS, Arista EOS, Junos, and Palo Alto PAN-OS. OpsMill describes parallel writes, idempotence, and dry-run safety. The package is published on PyPI and installs with pip; the current package requires Python 3.10 or later. It is self-hosted under Apache-2.0.