Involved Projects and Packages
Hyperscan is a high-performance multiple regex matching library. It
follows the regular expression syntax of the commonly-used libpcre
library, but is a standalone library with its own C API.
Hyperscan uses hybrid automata techniques to allow simultaneous
matching of large numbers (up to tens of thousands) of regular
expressions and for the matching of regular expressions across streams
Hyperscan is typically used in a DPI library stack.
Small library that offers basic data structures (list, set, map, ..)
in a pure C API for user-space applications.
- Easy to use, portable
- No "magic" MACROs, and no need to modify your data structures
(except, perhaps, for __attribute__((packed)))
- Uses C++ standard library as the backend for most data structures
- Reasonable performance
A clone of backtrace facility found in the GNU libc, mainly intended
for porting linuxish code to BSD platforms, however it can be used
at any platform which has a gcc compiler.
Libite is a lightweight library of frog DNA. It can be used to fill the
gaps in any dinosaur project. It holds useful functions and macros
developed by both Finit and the OpenBSD project. Most notably the
string functions: strlcpy(3), strlcat(3) and the highly useful *BSD
sys/queue.h and sys/tree.h API's.
Libite is the frog DNA missing in GNU libc. However, -lite does not aim
to become another GLIB! One noticeable gap in GLIBC is the missing
_SAFE macros in the BSD sys/queue.h API — highly recommended when
traversing lists to delete/free nodes.
The code is open sourced under a mix of the MIT/X11 license, the ISC
license used by OpenBSD, and BSD licenses, all of them are extremely
liberal and can be used freely in proprietary software if needed.
This library implements a number of functions found in -lmail on SysV
systems. These functions are designed to lock the standard mailboxes in
This library is an abstraction; however in the delicate balance between
performance and power, and API convenience, the scale is tipped closer to
the former. Features that only exist in some sound backends are exposed.
Libyang implements functions to process schemas expressed in the
YANG data modeling language defined by the IETF in RFCs 6020/7950.
Schemas expressed in this language primarily describe configuration
used by larger network equipment like routers and switches.
In addition to handling the schemas itself, the library also provides
functions to process data described by the schemas.
The library is implemented in C and provides an API for other software
to use in processing configurations.
nanomsg is a socket library that provides several common communication patterns.
It aims to make the networking layer fast, scalable, and easy to use.
Implemented in C, it works on a wide range of operating systems with no further
JSON for Modern C++, a C++11 header-only JSON class.
nng (nanomsg next-generation) is a C socket library providing
several common communication patterns.
notcurses facilitates the creation of modern TUI programs, making
full use of Unicode and 24-bit TrueColor. Its API is similar
to that of NCURSES, but extends that with z-buffering, rendering
of images and video using ffmpeg, alpha blending, widgets, palette
fades, resize awareness, and multithreading support.
Different functions for different purposes but that can be shared
between other projects.
Modern, powerful open source C++ class libraries and frameworks for building
network- and internet-based applications that run on desktop, server and
RTRlib is an open-source C implementation of the RPKI/Router Protocol
client. The library allows one to fetch and store validated prefix origin
data from a RTR-cache and performs origin verification of prefixes. It
supports different types of transport sessions (e.g., SSH, unprotected TCP)
and is easily extendable.
Tiny but powerful single file wavefront obj loader written in C++.
No dependency except for C++ STL. It can parse over 10M polygons with
moderate memory and time.
Based on GNU Libmicrohttpd for the backend web server, Jansson for the
json manipulation library, and Libcurl for the http/smtp client API.
Used to facilitate creation of web applications in C programs with a
small memory footprint, as in embedded systems applications.
One can create webservices in HTTP or HTTPS mode, stream data, or
implement server websockets.
XForms is a GUI toolkit based on Xlib for X Window Systems. It
features a rich set of objects, such as buttons, sliders, and menus
etc. integrated into an easy and efficient object/event callback
execution model that allows fast and easy construction of
X-applications. In addition, the library is extensible and new objects
can easily be created and added to the library.
Simple and easy to use logging library.
You can log messages to the console, a file or syslog.
Yder is mono-thread, which mean that you can use only one instance
of yder log at the same time in your program.
C++98/C++11 single-header testing framework for unit tests and TDD.
hexd prints a human-readable hexdump of the specified files, or
standard input if omitted. Its main distinguishing feature is
the use of colours to visually indicate which range of values
an octet belongs to, aiding in spotting patterns in binary data.
A JFFS2 filesystem extraction tool written in python.
- Big/Little Endian support
- JFFS2_COMPR_ZLIB, JFFS2_COMPR_RTIME, and
JFFS2_COMPR_LZMA compression support
- CRC checks - for now only enforced on hdr_crc
- Extraction of symlinks, directories, files, and device nodes
- Detection/handling of duplicate inode numbers. Occurs if multiple
JFFS2 filesystems are found in one file and causes jefferson
to treat segments as separate filesystems