4 stable releases
|2.2.8||Mar 10, 2023|
|2.2.3||Jan 9, 2023|
|2.2.2||Dec 15, 2022|
|2.2.1||Nov 17, 2022|
#1577 in Network programming
Nmstate: A Declarative Network API
A declarative network management API for hosts.
Copr build status, all repos are built for Fedora Linux and RHEL/CentOS Stream/EPEL 8+:
Nmstate is a library with an accompanying command line tool that manages host networking settings in a declarative manner. The networking state is described by a pre-defined schema. Reporting of current state and changes to it (desired state) both conform to the schema.
Nmstate is aimed to satisfy enterprise needs to manage host networking through a northbound declarative API and multi provider support on the southbound. NetworkManager acts as the main (and currently the only) provider supported.
- Rust crate -- nmstate
- Command line tools --
cargo install nmstatectl
- Python library --
- Go binding
- C binding
More document could be found at nmstate.io
Desired/Current state example (YAML):
--- dns: config: server: - 192.0.2.1 search: - example.org routes: config: - destination: 0.0.0.0/0 next-hop-interface: eth1 next-hop-address: 192.0.2.1 interfaces: - name: eth1 type: ethernet description: Main-NIC state: up ipv4: enabled: true dhcp: false address: - ip: 192.0.2.9 prefix-length: 24 ipv6: enabled: false
Nmstate GitHub Issues pages for discussion.
You may find us in
#nmstate on Libera IRC also.
Yay! We are happy to accept new contributors to the Nmstate project. Please follow these instructions to contribute.
For Fedora 29+,
sudo dnf install nmstate.
For other distribution, please see the install guide.
- libnmstate API
- Code examples
- State examples
- nmstatectl user guide
- nmstatectl man page:
Please refer to CHANGELOG