PJLIB is an Open Source, small footprint framework library written in C for making scalable applications. It can be used in wide range of applications, from embedded systems, mobile applications, to high performance systems.
From 16-bit, 32-bit, to 64-bit, big or little endian, single or multi-processors, wide range of operating systems. With or without floating point support. Multi-threading or not. With/without ANSI LIBC. Currently known to run on these platforms:
iOS (iPhone, iPad, iPod Touch)
UWP and Windows Phone 8
Symbian S60 3rd Edition
MacOS X (Intel and powerpc)
Win32/x86 (Win95/98/ME, NT/2000/XP/2003, mingw)
Linux/x86, (user mode and as kernel module(!))
RTEMS (x86 and powerpc)
Small in Size
Size around 100 KB.
Big in Performance
Everything is designed for highest performance.
No Dynamic Memory Allocations
alloc() is a O(1) operation.
no mutex is used inside alloc().
no free(). All chunks will be deleted when the pool is destroyed.
Operating system abstraction
Low and high level network I/O
Rich data structures
Random and GUID generation
Basic Types and Functions¶
Error Number Management
String & Unicode¶
String in PJLIB is non-zero terminated, and represented with
pj_str_t. A full
set of API is provided to manipulate such strings.
Multithreading and Concurrency¶
Time and Timer¶