path: root/README
diff options
authorPablo Neira Ayuso <>2010-04-08 23:16:26 +0200
committerPablo Neira Ayuso <>2010-04-08 23:16:26 +0200
commitfdf71c17822f3f11cb8f8cc8b5141396d8eac942 (patch)
treec6b1e0002784d6b67fb5f78ba1218d4fe458fed2 /README
parent8e9a6ecf73b4c67c21b707228b7a621dae6804c6 (diff)
add new README file
Signed-off-by: Pablo Neira Ayuso <>
Diffstat (limited to 'README')
1 files changed, 22 insertions, 8 deletions
diff --git a/README b/README
index 9bd9414..481875e 100644
--- a/README
+++ b/README
@@ -1,9 +1,23 @@
+= What is libmnl? =
-- Minimalistic Netlink library
-- Low-level: you have to know how Netlink works.
-- Simplicity: as opposed to complexity.
-- Very low abstraction: try to leak as less Netlink details as possible.
-- Decoupling: the main bricks are decoupled to avoid inter-dependencies
-(eg. socket handling and callbacks are not attached).
+libmnl is a minimalistic user-space library oriented to Netlink developers.
+There are a lot of common tasks in parsing, validating, constructing of
+both the Netlink header and TLVs that are repetitive and easy to get wrong.
+This library aims to provide simple helpers that allows you to re-use code
+and to avoid re-inventing the wheel. The main features of this library are:
+* Small: the shared library requires around 20KB in a x86-based computer.
+* Simple: this library avoids complexity and elaborated abstractions that
+tend to hide Netlink details.
+* Easy to use: the library simplifies the work for Netlink-wise developers.
+It provides functions to make socket handling, message building, validating,
+parsing, and sequence tracking, easier.
+* Easy to re-use: you can use the library to build your own abstraction layer
+on top of this library.
+* Decoupling: the interdependency of the main bricks that compose the library
+is reduced, eg. the library provides many helpers but the programmer is not
+forced to use them.
+Pablo Neira Ayuso <>