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, Unicode support. With or without floating point support. Multi-threading or not. With/without ANSI LIBC. Currently known to run on these platforms:
PJLIB size is around 150 KB. See Footprint Optimization for more information.
Big in Performance
See Performance Optimization for more information.
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
SSL socket implementation on top of OpenSSL, BoringSSL, GNUTLS, and Apple’s Network framework. See:
Guide on guide_ssl
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.