|
RADLib
RADical C++ application framework
|
RADLib is a modular C++20 application framework for Linux desktop, embedded Linux, instrumentation, media, networking, and UI applications. The beta SDK includes public headers, shared libraries, examples, package metadata, and this searchable API reference.
RADLib 0.2.0 also provides the RADpm package-manager executable used by RadBuild and RADPx package flows. RADpm is built as a RADLib-owned tool so package resolution, packagegroup handling, sysroot staging, and future RADPx live-package operations share the same library foundation.
The documentation below is written for application developers consuming the RADLib SDK. It does not require access to RADLib implementation source files.
External builds must define RADLIB_LICENSE_ACCEPTED=1 and one license tier macro before including public RADLib headers. Valid tier macros are RADLIB_LICENSE_TIER_COMMUNITY, RADLIB_LICENSE_TIER_SMALL_BUSINESS, RADLIB_LICENSE_TIER_COMMERCIAL, and RADLIB_LICENSE_TIER_PARTNER. Commercial applications should verify signed node-locked license files at runtime with RADSecurity::LicenseManager. Expose RADLicense::compileAuditStamp() in diagnostics or about dialogs so compiled license tier declarations are easy to audit on running systems.
RADLib runtime binaries also expose an edition stamp through RADCore::runtimeAuditStamp(). Public beta packages are Community Edition and report RADLIB_EDITION=community-edition; future paid packages should report RADLIB_EDITION=paid-edition and verify signed licenses with RADSecurity::LicenseManager.
Crimson releases can include a signed universal community license file under licenses/. License documents include a public issuer key_id so applications can select the correct trusted public key. Commercial licenses should be customer-specific and node-locked. Issuer private keys are never part of the SDK.
RADLib is currently a beta SDK. APIs are suitable for evaluation and early application development, but ABI compatibility is not yet guaranteed across minor beta updates.
Host Linux packages are published as Debian packages through RadicalPackages. RADPx image builds consume RADLib through .radpm metadata and RADPx-specific payloads. For normal RADPx image creation, select RADLib through the radpx-terminal-base or radpx-desktop-base packagegroups rather than adding individual RADLib packages by hand.