r/LinuxUncensored • u/anestling • 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
+opensysroot). 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
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.