# Xenolith SDK > A cross-platform C/C++ SDK: a Vulkan graphics engine, a self-contained system > runtime (umbrella libc + freestanding sprt/cxx + a full LLVM libc++ port in > std::__sprt), and a full set of application libraries. Build for Linux, Windows, > Android and macOS from one codebase — without the Windows SDK, the Android NDK > or the macOS SDK (`+sprt` variant). The toolchain ships everything it needs, > including GNU Make, the bundled xlmake driver, Clang 22.1.8 and linkers. Public contact: Dmitry Mukanin . Lead developer: Roman Katuntsev. License: see the repository. ## What it is - **No platform SDKs.** Windows builds without UCRT or the Windows SDK, Android without the NDK, macOS without the macOS SDK via `+sprt`. This removes the related technical and licensing barriers. - **One API.** As far as technically possible, every platform exposes the same interface — no forests of `#ifdef`, no per-OS rewrites. - **One build.** Every build is a cross-compile; switch target with a single flag (`STAPPLER_TARGET=`). Same source, same Makefile. - **Reproducible.** The toolchain pins exact versions of GNU Make, xlmake, Clang/LLVM 22.1.8, lld, lldb and the shader compiler. ## Platform support - Linux: x86_64, arm64, riscv64 — glibc and musl - Windows: x86_64, arm64 — custom libc, no UCRT or Windows SDK - macOS: x86_64, arm64 — including builds with the Xenolith Runtime (`+sprt`) - Android: all ABIs (arm64, armv7, x86, x86_64) — with and without the NDK - iOS: arm64 + simulator — in development (toolchain sysroot only) ## System runtime (SPRT) - One POSIX surface across glibc, musl, Bionic and macOS; a fully custom libc on Windows (mimalloc allocator, no UCRT). - Full pthread with priority-inheritance mutexes (futex on Linux, WaitOnAddress on Windows, os_sync on macOS), robust mutexes, a writer-fair rwlock. - `longjmp` that unwinds the C++ stack so destructors run. - Two C++ libraries: freestanding `sprt/cxx` (exception-free, `Status`/`Result`) and a full LLVM libc++ port in `std::__sprt` for application code. - Unified event loop (Looper/Queue) over epoll + io_uring, IOCP, kqueue/CFRunLoop, ALooper. ## Graphics engine (Vulkan) - Render graph with automatic barriers and layout transitions; graphics and compute in one graph. - On-demand rendering — a frame is prepared only when the scene changes. - CPU software backend — the same scene graph rasterizes without a GPU. - GPU glyph atlas, variable fonts, FreeType + HarfBuzz typography. - ~4000 vector Material icons, crisp at any density. - Flexbox and CSS grid UI toolkit, Material Design 3, Rich Text, HTML/EPUB rendering, gesture recognition, animation with ~30 easing curves. - MoltenVK on macOS with the correct portability subset. ## Application libraries (Stappler) - Object database over PostgreSQL and SQLite: declarative schemes, role-based access control, full-text search in 23 languages. - `Value` container serializing to JSON, CBOR or a URL-safe format with LZ4 compression. - Cryptography: OpenSSL / GnuTLS / mbedTLS; RSA, ECDSA, EdDSA; GOST 3410/3411/3412 (OpenSSL & GnuTLS); JWT. - Arena memory pools or plain malloc — a single template parameter, no code changes. ## Experimental / on the roadmap (not shipping as stable) - Remote rendering: thin-client / GPU-server over QUIC; scene-graph serialization exists, the streaming per-frame protocol is still ahead. - WebAssembly plugins (WAMR host); graphics not yet exposed to guest code. - GPU particle systems and iOS are in active development. ## Links - Source & docs: https://github.com/XenolithEngine/xenolith-engine - Installer (one-click GUI + headless CLI): https://github.com/XenolithEngine/xenolith-installer - Website: https://engine.xenolith.studio/ (en) · https://engine.xenolith.studio/ru/ (ru) · https://engine.xenolith.studio/zh/ (zh) - Contact: dmitry@xenolith.studio