15 releases (9 breaking)
|new 0.10.0||Jun 24, 2022|
|0.9.2||Feb 20, 2022|
|0.9.1||Dec 29, 2021|
|0.7.0||Jun 29, 2021|
|0.1.1||Jan 2, 2019|
#63 in Network programming
66,410 downloads per month
Used in 36 crates (8 directly)
This project aims at providing building blocks for netlink (see
man 7 netlink).
netlink_syscrate provides netlink sockets. Integration with
- Each netlink protocol has a
netlink-packet-<protocol_name>crate that provides the packets for this protocol:
netlink-packet-routeprovides messages for the route protocol
netlink-packet-auditprovides messages for the audit protocol
netlink-packet-sock-diagprovides messages for the sock-diag protocol
netlink-packet-genericprovides message for the generic netlink protocol
netlink-packet-netfilterprovides message for the
netlink-packet-coreis the glue for all the other
netlink-packet-*crates. It provides a
NetlinkMessage<T>type that represent any netlink message for any sub-protocol.
netlink_protocrate is an asynchronous implementation of the netlink protocol. It only depends on
netlink-sysfor the socket.
rtnetlinkcrate provides higher level abstraction for the route protocol
auditcrate provides higher level abstractions for the audit protocol.
genetlinkcrate provide higher level abstraction for the generic netlink protocol
ethtoolcrate provide higher level abstraction for ethtool netlink protocol
- https://github.com/jbaublitz/neli: the main alternative to these crates, as it is actively developed.
- Other but less actively developed alternatives:
My main resource so far has been the source code of
pyroute2 (python) and
a lot. These two projects are great, and very nicely written. As someone who does not read C fluently, and that does not
know much about netlink, they have been invaluable.
I'd also like to praise
libnl for its documentation. It helped me a lot in understanding the protocol basics.
Thanks also to the people behind tokio for the amazing tool they are building, and the support they provide.