Standard library

PXX ships its own runtime (RTL) and component library (PCL), written from scratch with FPC-style naming. This section documents the units a program can uses.

The pxx wrapper created by install.sh adds the bundled library roots, so most programs can use these units without passing extra -Fu flags.

Core units

Unit Area
sysutils Standard utilities, including string conversions, formatting, file paths, and memory helpers.
classes & streams Object, list, and stream infrastructure (lists, string lists, memory streams) for FPC-style code.
textfile Pascal text-file support, including the standard Input/Output files, Flush, and Erase.
strings Classic NUL-terminated PChar routines (StrLen, StrPos, StrComp, …).
math Numeric helpers.
ucomplex Complex numbers with the FPC ucomplex API and operator overloads.
vecmath 2/3/4-component vectors and matrices (TVec3, TMat4, …) with operator overloads.
bignum Arbitrary-precision integers with operator overloads.
typinfo RTTI inspection helpers.

Several language features also have runtime support in the default environment: managed strings, dynamic arrays, exceptions, interfaces, classes, RTTI, and file I/O are available without importing a unit just to initialize the runtime.

Common FPC System routines are likewise available with no uses clause, including Move, FillChar, CompareByte, UpCase, Pos, Copy, Insert, Delete, Str, Val, Abs, Sqr, Random, Randomize, RandSeed, HexStr, Lo, Hi, Swap, RunError, and UniqueString. A declaration of the same name in your program shadows the built-in version.

Data and formats

Unit Area
json JSON parser / serializer support.
httpjson HTTP helpers for JSON payloads.
base64 Base64 encoding and decoding.
png / image Image decoding and simple bitmap support.
zlib Compression support.

Networking and async

Unit Area
http HTTP/1.1 client with redirects, chunked responses, pooling, and TLS backend support.
net / sockets Lower-level networking primitives.
dns, dns_async DNS lookup helpers.
scheduler & coroutine Coroutine reactor, cooperative scheduling, and async networking support.
palthreadobj, palparallel OS-level threads (TThread) and the parallel for worker pool.
tls, tls_openssl TLS backend interface and OpenSSL-backed implementation.

Crypto and checksums

Unit Area
sha256, sha512, hashing Hashing helpers.
random Random byte and number helpers.
aesgcm, chacha20poly1305 Authenticated encryption primitives.
ed25519, ecdsa_p256, x25519, rsa, x509 Public-key and certificate building blocks.
tls13_* Native TLS 1.3 handshake/key/record work in progress.

Terminal, UI, and PCL

Unit Area
ansiterm, ansirender, screen, lineedit, menu Terminal UI helpers.
forms, controls, stdctrls, extctrls, dialogs, menus PCL component-library units.
gtk3, gtk3widgets, glarea, graphics GTK/OpenGL-backed GUI pieces used by demos and the Eliah IDE.

Platform units

The wrapper installs the POSIX platform backend by default. Cross and embedded flows may pass an explicit platform root when a helper asks for it, for example an ESP backend path in an ESP32 object build.

For project-local units, pass additional roots with -Fu:

./pxx -Fusrc app.pas app

Status

The library is still young. Treat these pages as the user-facing map of what is intended to be usable from applications; if a documented call fails on the pinned compiler, that is either a docs bug or a compiler/library regression worth filing as a progress ticket.