PJLIB¶
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.
Key Features¶
Extreme Portability
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:
Mobile platforms:
Android
iOS (iPhone, iPad, iPod Touch)
UWP and Windows Phone 8
BlackBerry 10
Symbian S60 3rd Edition
Windows Mobile
Desktop platforms:
MacOS X (Intel and powerpc)
Win32/x86 (Win95/98/ME, NT/2000/XP/2003, mingw)
Linux/x86, (user mode and as kernel module(!))
Embedded platforms:
Embedded Linux
WinCE
RTEMS (x86 and powerpc)
Others:
Solaris/ultra
Linux/alpha
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.
Rich Features
Operating system abstraction
Low and high level network I/O
Timer management
Rich data structures
Exception construct
Logging facility
Random and GUID generation
API Reference¶
Basic Types and Functions¶
Infrastructure¶
Error Number Management
Data structure¶
Network¶
Address Resolution
Network I/O
File¶
Memory 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.