Xenolith — кроссплатформенный C/C++ SDK: Vulkan-движок, самодостаточный системный рантайм и полный набор прикладных библиотек. Собирай под Linux, Windows, Android и macOS из одного кода — без Windows SDK, без NDK, без macOS SDK.
Ставить ничего не нужно — тулчейн несёт всё, вплоть до самого GNU Make.
Нет необходимости ставить или лицензировать платформенные SDK. Один тулчейн собирает под всё; технические и лицензионные «вахтёры» убраны с пути.
Насколько это физически возможно, каждая платформа отдаёт один и тот же интерфейс — без лесов из #ifdef и переписывания под каждую ОС.
Любая сборка — это кросс-компиляция. Смена платформы — один флаг; код и Makefile остаются ровно теми же.
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.
Зонтичный рантайм даёт каждой платформе единый 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.
Деструкторы C++ между longjmp и setjmp действительно вызываются — завершение и отмена потоков проходят чисто, а не как UB в обычном C.
Своя частичная C++ STL ради полного контроля ABI — без исключений, с ошибками через Status/Result<T> и интрузивным подсчётом ссылок, ловящим утечки по backtrace в debug-сборке.
Один вызов → три ядра. Одна SPRT-блокировка ложится на нативный примитив каждой ОС — с наследованием приоритета — так что код остаётся идентичным на Linux, Windows и macOS.
Тот же рантайм, что даёт libc и потоки, даёт и event loop, окна и дисплеи — вся платформенная машинерия за единым интерфейсом, без платформенных SDK.
Единый dispatch-API (Looper / Queue) поверх epoll + io_uring (Linux), IOCP (Windows), kqueue / CFRunLoop (macOS) и ALooper (Android): таймеры, готовность сокетов и файлов, async file I/O, пул рабочих потоков, спавн процессов со стримингом stdout/stderr и cross-thread wakeup.
Реальные бэкенды для 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 на поддерживаемых выводах.
Мышь (скролл и стилус), клавиатура с XKB-раскладкой и модификаторами, тач; типизированный IME-ввод (email / число / телефон / пароль / многострочный); буфер обмена с согласованием MIME-типов; серверные или клиентские декорации окон.
Описываешь кадр как граф проходов и ресурсов; движок сам расставляет барьеры и layout-переходы. Графика и compute живут в одном графе.
On-demand рендеринг. Новый кадр готовится только когда сцена реально изменилась — настоящая экономия батареи в простое.
Собственный GPU-аллокатор. Постраничная суб-аллокация с бюджетированием и dedicated-fallback, заточенная под асинхронную модель кадра.
Descriptor layouts из шейдеров. Descriptor sets и push-constants извлекаются из SPIR-V рефлексией — без ручного boilerplate, который «разъезжается».
Vulkan на macOS — без хлопот. MoltenVK с правильным portability subset; загрузчик находится прямо в твоём .app.
Полноценный CSS-flexbox — direction, wrap, justify, align, grow/shrink/basis, отступы и порядок.
Material-иконки как векторные данные, чёткие при любой плотности пикселей, с анимируемым морфингом.
Move, scale, fade, tint; sequence, spawn, repeat; сглаживания Sine / Quad / Cubic / Expo / Elastic / Back / Bounce и Bézier — плюс физичная инерция для естественного скролла.
Распознаватели tap, long-press, swipe, pinch, scroll и hover; диспетчер с приоритетами и захватом, группы фокуса, текстовый ввод с IME.
Своя сцена и director на каждое окно, с пробросом плотности экрана в жесты и рендер, и выбором монитора/режима.
Pixel-perfect текст. GPU-атлас глифов с асинхронной растеризацией, вариативные шрифты (оси веса / ширины / оптического размера), переносы по словарям, выключка и чёткий рендер при любой плотности экрана.
Изображения — растр и вектор. Чтение PNG / JPEG / WebP / GIF / TIFF и запись PNG / JPEG / WebP с 16 качественными фильтрами ресайза; векторные пути, тесселируемые на GPU, резкие при любом DPI.
Декларативные схемы, богатые типы полей (объекты, множества, файлы, изображения с превью, полнотекст, виртуальные и вычисляемые поля), доступ по ролям на каждую операцию, keyset-пагинация и upsert — один API для обоих движков.
Единый контейнер Value сериализуется в JSON, CBOR или URL-совместимый формат — с прозрачным LZ4-сжатием и автоопределением формата.
Бэкенды OpenSSL, GnuTLS и mbedTLS; RSA, ECDSA и EdDSA; ГОСТ 3410/3411/3412 на бэкендах OpenSSL и GnuTLS; JWT с защитой от algorithm-confusion и сравнением за постоянное время.
Snowball-стемминг, PostgreSQL-совместимые поисковые векторы, умный токенайзер (email / URL / пути), подсветка фрагментов и нечёткий поиск — с in-memory индексом для offline.
Документный движок с настоящей CSS box-model — блочный поток, float'ы, полноценные таблицы, пагинация — плюс EPUB 2/3 с оглавлением и встроенными шрифтами, выдаваемый как позиционированные объекты для прямого рендера на GPU.
Шаблонизатор Pug с условиями, циклами, include и mixin, экранированным/неэкранированным выводом и hot-reload при изменении файла.
Любой контейнер, строка и значение могут работать на арена-пулах — выделяешь тысячи объектов и освобождаешь всё одним вызовом, без per-object деструкции — или на обычном malloc. Выбор — один параметр шаблона, так что серверное поведение аллокации достаётся без переписывания.
Десктоп-установщик (Windows, macOS, Linux) ставит движок, host-тулчейн и таргеты, с GPG-проверкой загрузок и понятным прогрессом.
Создай графический проект, а затем собирай, запускай, чисти и пересобирай из GUI — выбери таргет, запусти результат и читай ошибки с подсказками на человеческом языке. Headless-CLI закрывает CI.
Тулчейны качаются один раз и шарятся между версиями, так что апдейты не дублируют гигабайты. Интерфейс на английском и русском.
Зафиксировано и воспроизводимо — каждая сборка на одних и тех же выверенных версиях
Мы предпочитаем говорить, что есть, а не продавать воздух. Это спроектировано и частично построено — интересно, но ещё не готово.
Архитектура «тонкий клиент / GPU-сервер»: защищённый QUIC-транспорт, сериализация графа сцены, «тонкие» GPU-хендлы. Потоковый кадровый протокол ещё впереди.
Рабочий host-рантайм на WAMR с богатым data/filesystem API для изолированного гостевого кода. Графика гостю пока не отдаётся.
GPU-системы частиц и поддержка iOS в активной разработке — iOS пока собирает только sysroot тулчейна.
Небольшое приложение скачивает движок, host-тулчейн и target-sysroot'ы с релиз-сервера (с GPG-проверкой, с докачкой), затем создаёт, собирает и запускает твой первый Vulkan-проект. На серверах и в CI — headless.
Сборки установщика пока не подписаны — при первом запуске нужно подтверждение Gatekeeper/SmartScreen. (GPG-проверка выше — это проверка скачанных артефактов SDK, и она настоящая.)
Для C- и C++-разработчиков, которые выпускают один код на Linux, Windows, Android и macOS, не воюя с платформенными SDK, — приложения, инструменты, игры, ридеры или софт с тяжёлой графикой и вычислениями на современном Vulkan-фундаменте.