кроссплатформенный C/C++ SDK

Один SDK.Любая платформа.Без чужих SDK.

Xenolith — кроссплатформенный C/C++ SDK: Vulkan-движок, самодостаточный системный рантайм и полный набор прикладных библиотек. Собирай под Linux, Windows, Android и macOS из одного кода — без Windows SDK, без NDK, без macOS SDK.

Скачать установщик Документация

Ставить ничего не нужно — тулчейн несёт всё, вплоть до самого GNU Make.


Собирается под
Linux x86_64 · arm64 · riscv64Windows x86_64 · arm64macOS x86_64 · arm64Android все ABIiOS в разработке

почему xenolith

Главное — без барьеров

Без барьеров

Нет необходимости ставить или лицензировать платформенные SDK. Один тулчейн собирает под всё; технические и лицензионные «вахтёры» убраны с пути.

Единый API

Насколько это физически возможно, каждая платформа отдаёт один и тот же интерфейс — без лесов из #ifdef и переписывания под каждую ОС.

Единая сборка

Любая сборка — это кросс-компиляция. Смена платформы — один флаг; код и Makefile остаются ровно теми же.


сборка и тулчейн

Никаких платформенных SDK

Windows без UCRT и Windows SDK, Android без NDK, macOS без macOS SDK — тулчейн несёт свою libc, линкер и хедеры.

Кросс-компиляция по умолчанию. Сборка под другую платформу — один флаг STAPPLER_TARGET=<triple>. Тот же код, тот же Makefile.

Ничего не нужно ставить заранее. Тулчейн несёт собственные GNU Make, Clang, lld, lldb и компилятор шейдеров — с зафиксированными версиями ради воспроизводимости.

Модули сами тянут зависимости. Перечисляешь используемые — система дотягивает транзитивно и понятно сообщает, если чего-то нет.

Шейдеры компилируются в сборке. GLSL сам превращается в SPIR-V и встраивается хедером — без отдельного шага.

Готов к IDE из коробки. Каждая сборка пишет compile_commands.json; в комплекте конфиги VS Code для clangd, сборки и LLDB.


Системный рантайм · SPRT

Своя libc, STL и потоки — со-спроектированы ради контроля ABI

Зонтичный рантайм даёт каждой платформе единый POSIX, а затем заменяет то, что важно.

Единый POSIX везде

Один POSIX-интерфейс поверх glibc, musl, Bionic и macOS — и полностью своя libc на Windows. time_t / off_t 64-битные на всех платформах; отсутствующие в ОС вызовы возвращают ENOSYS, а не исчезают из API.

Настоящие гарантии многопоточности

Полный pthread на каждой платформе: мьютексы с наследованием приоритета (futex на Linux, WaitOnAddress на Windows, os_sync на macOS), robust-мьютексы, справедливый к писателям rwlock и адаптивный spinlock.

longjmp с раскруткой стека

Деструкторы C++ между longjmp и setjmp действительно вызываются — завершение и отмена потоков проходят чисто, а не как UB в обычном C.

Лёгкая STL без исключений

Своя частичная C++ STL ради полного контроля ABI — без исключений, с ошибками через Status/Result<T> и интрузивным подсчётом ссылок, ловящим утечки по backtrace в debug-сборке.

Единый API Ядра ОС SPRT lock один вызов · PI Linux futex Windows WaitOnAddress macOS os_sync_wait_on_address

Один вызов → три ядра. Одна SPRT-блокировка ложится на нативный примитив каждой ОС — с наследованием приоритета — так что код остаётся идентичным на Linux, Windows и macOS.


Интеграция с платформой

Один API ко всей ОС под капотом

Тот же рантайм, что даёт libc и потоки, даёт и event loop, окна и дисплеи — вся платформенная машинерия за единым интерфейсом, без платформенных SDK.

Один event loop на все ОС

Единый dispatch-API (Looper / Queue) поверх epoll + io_uring (Linux), IOCP (Windows), kqueue / CFRunLoop (macOS) и ALooper (Android): таймеры, готовность сокетов и файлов, async file I/O, пул рабочих потоков, спавн процессов со стримингом stdout/stderr и cross-thread wakeup.

Окна на любом display-сервере

Реальные бэкенды для Wayland, X11/XCB, Win32, Cocoa и Android — Linux выбирает Wayland или X11 в рантайме (с fallback на XWayland) и интегрирует порталы GNOME/KDE через DBus. Каждый отдаёт движку готовую Vulkan-surface. Без Windows SDK, без NDK.

Дисплеи как надо

Перечисление мониторов с общим рабочим столом, масштаб на каждый дисплей и фракционное DPI-масштабирование на Wayland, exclusive fullscreen, управление частотой/present-mode, физический размер и EDID — с учётом HDR на поддерживаемых выводах.

Ввод, IME и буфер обмена

Мышь (скролл и стилус), клавиатура с XKB-раскладкой и модификаторами, тач; типизированный IME-ввод (email / число / телефон / пароль / многострочный); буфер обмена с согласованием MIME-типов; серверные или клиентские декорации окон.


Vulkan-движок

Рендер-граф, который синхронизируется сам

Описываешь кадр как граф проходов и ресурсов; движок сам расставляет барьеры и layout-переходы. Графика и compute живут в одном графе.

On-demand рендеринг. Новый кадр готовится только когда сцена реально изменилась — настоящая экономия батареи в простое.

Собственный GPU-аллокатор. Постраничная суб-аллокация с бюджетированием и dedicated-fallback, заточенная под асинхронную модель кадра.

Descriptor layouts из шейдеров. Descriptor sets и push-constants извлекаются из SPIR-V рефлексией — без ручного boilerplate, который «разъезжается».

Vulkan на macOS — без хлопот. MoltenVK с правильным portability subset; загрузчик находится прямо в твоём .app.


Интерфейс и 2D

Ввод, вёрстка и анимация — из коробки

Flexbox-вёрстка

Полноценный CSS-flexbox — direction, wrap, justify, align, grow/shrink/basis, отступы и порядок.

~4000 векторных иконок в комплекте

Material-иконки как векторные данные, чёткие при любой плотности пикселей, с анимируемым морфингом.

Богатые экшены и ~30 кривых сглаживания

Move, scale, fade, tint; sequence, spawn, repeat; сглаживания Sine / Quad / Cubic / Expo / Elastic / Back / Bounce и Bézier — плюс физичная инерция для естественного скролла.

Ввод и жесты как надо

Распознаватели tap, long-press, swipe, pinch, scroll и hover; диспетчер с приоритетами и захватом, группы фокуса, текстовый ввод с IME.

Мультиоконность и HiDPI

Своя сцена и director на каждое окно, с пробросом плотности экрана в жесты и рендер, и выбором монитора/режима.


Типографика и графика

Pixel-perfect при любой плотности

Pixel-perfect текст. GPU-атлас глифов с асинхронной растеризацией, вариативные шрифты (оси веса / ширины / оптического размера), переносы по словарям, выключка и чёткий рендер при любой плотности экрана.

Изображения — растр и вектор. Чтение PNG / JPEG / WebP / GIF / TIFF и запись PNG / JPEG / WebP с 16 качественными фильтрами ресайза; векторные пути, тесселируемые на GPU, резкие при любом DPI.


Данные, бэкенд и контент

Полный прикладной стек, а не только графика

Объектная БД поверх PostgreSQL и SQLite

Декларативные схемы, богатые типы полей (объекты, множества, файлы, изображения с превью, полнотекст, виртуальные и вычисляемые поля), доступ по ролям на каждую операцию, keyset-пагинация и upsert — один API для обоих движков.

Динамические данные, три формата

Единый контейнер Value сериализуется в JSON, CBOR или URL-совместимый формат — с прозрачным LZ4-сжатием и автоопределением формата.

Криптография с настоящим ГОСТ

Бэкенды OpenSSL, GnuTLS и mbedTLS; RSA, ECDSA и EdDSA; ГОСТ 3410/3411/3412 на бэкендах OpenSSL и GnuTLS; JWT с защитой от algorithm-confusion и сравнением за постоянное время.

Полнотекстовый поиск на 23 языках

Snowball-стемминг, PostgreSQL-совместимые поисковые векторы, умный токенайзер (email / URL / пути), подсветка фрагментов и нечёткий поиск — с in-memory индексом для offline.

Чтение HTML и EPUB

Документный движок с настоящей CSS box-model — блочный поток, float'ы, полноценные таблицы, пагинация — плюс EPUB 2/3 с оглавлением и встроенными шрифтами, выдаваемый как позиционированные объекты для прямого рендера на GPU.

Серверные шаблоны

Шаблонизатор Pug с условиями, циклами, include и mixin, экранированным/неэкранированным выводом и hot-reload при изменении файла.


производительность

Две модели памяти без единой правки кода

Любой контейнер, строка и значение могут работать на арена-пулах — выделяешь тысячи объектов и освобождаешь всё одним вызовом, без per-object деструкции — или на обычном malloc. Выбор — один параметр шаблона, так что серверное поведение аллокации достаётся без переписывания.


Developer experience

От скачивания до первого окна — в один клик

Установка всего SDK в один клик

Десктоп-установщик (Windows, macOS, Linux) ставит движок, host-тулчейн и таргеты, с GPG-проверкой загрузок и понятным прогрессом.

Проекты — не выходя из приложения

Создай графический проект, а затем собирай, запускай, чисти и пересобирай из GUI — выбери таргет, запусти результат и читай ошибки с подсказками на человеческом языке. Headless-CLI закрывает CI.

Несколько версий движка — без лишнего места

Тулчейны качаются один раз и шарятся между версиями, так что апдейты не дублируют гигабайты. Интерфейс на английском и русском.

Зафиксировано и воспроизводимо — каждая сборка на одних и тех же выверенных версиях

LLVM/Clang 21.1.8Vulkan SDK 1.4.350.0OpenSSL 3.5.7 LTS · GOSTHarfBuzz 14.2.1FreeType 2.14.3SQLite 3.53.2curl 8.20.0ICU4C 78.3WAMR 2.4.4

На горизонте

Что реально есть — и что ещё впереди

Мы предпочитаем говорить, что есть, а не продавать воздух. Это спроектировано и частично построено — интересно, но ещё не готово.

экспериментально

Удалённый рендеринг

Архитектура «тонкий клиент / GPU-сервер»: защищённый QUIC-транспорт, сериализация графа сцены, «тонкие» GPU-хендлы. Потоковый кадровый протокол ещё впереди.

частично

WebAssembly-плагины

Рабочий host-рантайм на WAMR с богатым data/filesystem API для изолированного гостевого кода. Графика гостю пока не отдаётся.

в разработке

GPU-частицы и iOS

GPU-системы частиц и поддержка iOS в активной разработке — iOS пока собирает только sysroot тулчейна.


Установка

В один клик — или одной командой

Небольшое приложение скачивает движок, host-тулчейн и target-sysroot'ы с релиз-сервера (с GPG-проверкой, с докачкой), затем создаёт, собирает и запускает твой первый Vulkan-проект. На серверах и в CI — headless.

macOS
Intel + Apple Silicon
.dmg
Windows
x64
.exe.msi
Linux
x64
.AppImage.deb

Сборки установщика пока не подписаны — при первом запуске нужно подтверждение Gatekeeper/SmartScreen. (GPG-проверка выше — это проверка скачанных артефактов SDK, и она настоящая.)


для кого

Кроссплатформенный C++,без барьеров

Для C- и C++-разработчиков, которые выпускают один код на Linux, Windows, Android и macOS, не воюя с платформенными SDK, — приложения, инструменты, игры, ридеры или софт с тяжёлой графикой и вычислениями на современном Vulkan-фундаменте.

Скачать установщик Документация GitHub