To be fair it can be confusing as on the surface they both:
- Allow you to interact with various device types via SSH.
- Both are Python-based.
- Both allow you to parse your data through Genie, TTP or TextFSM based parsers.
However, the key differences are:
- Provides support for a large number of device types (iirc ~105).
- Does not allow you to configure the underlying transport (you are fixed to Paramiko).
- Provides support for a limited (5) number of devices types. Though the supported device types are the main players (NXOS, JUNOS, EOS etc).
- Provides support for configuring the underlying transport type. By changing the underlying transport type you can then benefit from faster speeds and greater SSH config support.
Don't get me wrong there are many other differences. Such as Scrapli supports NETCONF, config merges and replaces etc. (full differences in our Scrapli course here). But these are the main ones to know.
So whether to use Netmiko or Scrapli depends on your use case. If you are looking to automate against some Cisco ASAs then Netmiko could be for you. However, if you are wanting to perform configuration pushes to your NXOS estate, at uber-fast speeds, then Scrapli is worth investigating.
Want to learn more about Scrapli or Netmiko? If so check out our courses below: