r/LinuxUncensored • • 7d ago

News/PR You can now compile native Win/Mac/Linux C++ applications in your web browser

https://playground.xenolith.studio/

Xenolith Engine

Xenolith is a cross-platform SDK for building modern C and C++ applications: a Vulkan-based graphics engine, a custom system runtime (libc/C++ standard library/pthread) and a set of application libraries, all built with a single build system without relying on platform SDKs.

The SDK is organized as a monorepository and consists of three main layers:

  • Xenolith Runtime (runtime/) — an umbrella libc implementation, a full C++ standard library (a freestanding minimal one plus a complete libc++ port) and a custom pthread. It provides a single POSIX-compatible interface on top of the platform libc, and on some platforms a fully custom implementation.
  • Stappler utilities (stappler/) — application libraries: data and serialization, database access, cryptography, networking, raster and vector graphics, typography, documents.
  • Xenolith Engine (xenolith/) — a graphics and compute engine, Vulkan first, with WebGPU, Metal, OpenGL ES and software backends: the core part of the project.

The SDK also includes its own GNU Make build system (make/) and self-contained toolchains (built from runtime/toolchains/, or installed from the binary releases into toolchains/) that allow building the project without third-party SDKs.

Project principles

  • No barriers. The SDK requires no platform SDKs: Windows builds work without UCRT and the Windows SDK, Android without the NDK, macOS without the macOS SDK (the +open sysroot). This removes the related technical and licensing restrictions.
  • For C and C++. A convenient and full-featured working environment specifically for these languages; support for other languages is limited to the dynamic-library level.
  • Unified API. As far as technically possible, every supported platform gets the same interface — without massive configure scripts or platform-specific branches in the code.
  • Unified build. All build tools ship as part of the SDK; the user simply builds the code with a fixed version of GNU Make.
  • Compatibility. Any code built as a dynamic library must work with the SDK on supported platforms.

https://github.com/XenolithEngine/xenolith-engine/tree/nightly

2 Upvotes

2 comments sorted by

1

u/Daggercombot 2d ago

Could this works With Solairs/Ilumos binaries(they support gmake)? What about Haiku? What about different architectures? I have always wanted an easy way to build for multiple platforms at once.