network-related library glue for C projects in userland
C Makefile Python Bison Perl C++ Other
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.


libpeak -- network-related library glue

This library consists of several modules and generic base headers
designed around the daily needs of network packet-related userland
tools written in C.  The available modules are:

peak_audit:	thread-safe runtime counters
peak_jar:	context-based circular buffer
peak_li:	lightweight inspection (DPI)
peak_load:	PCAP/PCAPNG/ERF/NETMON file reader
peak_locate:	geolocation database
peak_magic:	libmagic MIME type detection wrapper
peak_number:	string-based number comparison
peak_netmap:	simplified netmap(4) bindings
peak_packet:	packet preprocessor
peak_store:	PCAP file writer
peak_stream:	stream memory allocator
peak_string:	full-text string search
peak_regex:	full-text regex (pcre) search
peak_track:	tree-based flow tracker

The available binaries are:

flowsplit(1)	split a PCAP trace file into smaller
		connection-based chunks (think SplitCap)

geoconv(1)	compile geolocation info into a binary file

netfuse(1)	bridge two network interfaces using netmap(4)

peek(1)		run a PCAP trace through lightweight DPI

There's also a bunch of arch-independent base headers, which offer
simple memory pools, runtime allocation wrappers, network address
mapping, some hashes, output macros, spinlock/barrier wrappers,
and so forth.

A good introduction to the code would be its man pages.  We take
good care of them, so please look at them first.

Licensing and contributions

The library has been developed by Packetwerk and is released under the
ISC license (see COPYING for details).  We advocate open licensing and
are happy to help in any way we can.  Let us know!

Feel free to fork or contribute back.  To do so, use GitHub or send
your patches to us via email.  Contributions can also be made in the
form of supplying trace files or hard to come by documentation to help
maintain a reliable and free library.

A big thanks goes out to the individual authors of this code, namely:
Diego Assencio, Tobias Boertitz, Masoud Chelongar, Franco Fichtner,
Ulrich Klein, Victor Pereira, Alexey Saushev and Thomas Siegmund.

For further info check us out at

Basic directory layout

bin/		project binaries
contrib/	third-party bits
include/	base headers
lib/		specific modules
regress/	test framework
sample/		trace files
scripts/	auxiliary stuff
test/		test binaries

Building and running the code

The code builds fine on MacOS, NetBSD, OpenBSD, FreeBSD, DragonFly BSD
and Linux.  The following packes must be installed:

* libmagic (development variety)
* pcre (development variety)
* bmake or pmake (non-BSD)
* flex/bison (non-BSD)

Building the code:


Running the tests:

    cd regress && make

Having fun:

    priceless ;)