github.com/tbotnz/netpalm

ReST based network device broker

Open this visualization on its own page →

Contributors

11

Lines of Code

1,839

From

2020-03-01

To

2020-12-16

About tbotnz/netpalm

Netpalm is a REST-based network device broker that abstracts multiple network automation libraries into a unified OpenAPI 3 interface. Built in Python, it leverages popular open-source tools like NAPALM, Netmiko, NCCLIENT, and requests to communicate with network devices via SSH, Telnet, NETCONF, or RESTCONF protocols. The platform translates between modern REST and JSON RPC northbound APIs and traditional device CLI or model-driven southbound interfaces, supporting a wide range of network vendors including Cisco, Juniper, and others.

The platform emphasizes extensibility and platform-based configuration, allowing users to bring their own Jinja2 templates for configuration, service models, and webhooks, as well as custom Python scripts. Netpalm provides built-in features including multi-level service abstraction for lifecycle operations, data parsing through TextFSM and TTP, pre- and post-configuration checks, intelligent queueing strategies for task execution, and Redis-backed caching and job queuing. The architecture is container-native and designed for horizontal scaling, supporting deployment in Kubernetes or Docker Swarm environments.

Netpalm targets network automation engineers and DevOps teams seeking to integrate network device management into modern application workflows. It comes with comprehensive documentation including a Postman collection, self-documenting Swagger UI, and a public demo instance. The project is actively maintained and supported by enterprises, with backing from companies like Apcela and participation in the broader network automation community.

Share this video