You signed in with another tab or window.Reload to refresh your session.You signed out in another tab or window.Reload to refresh your session.You switched accounts on another tab or window.Reload to refresh your session.Dismiss alert
XFrames is a high-performance library that empowers developers to build native desktop applications using whichever programming language they are familiar with, without the overhead of the DOM. XFrames was originally conceived as a streamlined alternative to Electron, designed for developers looking to maximize performance and efficiency.
Key Features
DOM-free rendering: Bypasses the traditional DOM, providing a faster, more lightweight environment for GUI development.
Cross-platform support: Easily create applications for multiple platforms, including the browser through WebAssembly, while maintaining a native feel.
Advanced layout capabilities: Leverage the power and flexibility ofYoga layouts.
Getting started
Node.js
At the moment the easiest way to get started on Node.js is to run
npx create-xframes-node-app
Enter a name for your project then wait until source files and dependencies are installed, then
XFrames is actively maintained with planned features and enhancements. The focus at the moment is to add support for more widgets and programming languages.
Supported platforms
Node-API v9
Architecture
OS
Notes
wasm32-emscripten
N/A
Works in browsers that support WebGPU rendering
x64-windows
Windows 11 Home
Works
x64-linux
WSL2 (Ubuntu) 24.04.1 LTS
Works by settingexport GALLIUM_DRIVER=d3d12
x64-linux
Debian Trixie
Works
x64-linux
Ubuntu 22.04 LTS
Works
x64-linux
Ubuntu 24.04 LTS
Works
arm64-linux
Raspberry Pi OS (Debian bookworm) Oct 2024
Works, though there are stricter limits with custom fonts loading
riscv64-linux
Debian Trixie on Docker (emulated)
Compiles successfully, yet to be tested on real hardware
Accessibility is a key priority for the future ofXFrames. While the current version lacks comprehensive accessibility support, we are committed to making XFrames an inclusive framework that provides equitable access for all users. Upcoming development will focus on implementing accessibility features and adhering to industry standards, ensuring XFrames applications can be used effectively by people with disabilities. Our goal is to create a robust, accessible platform that enables developers to build applications for diverse audiences with confidence.
Basic online WASM demo
(online demo) Only browsers that natively support WebGPU: Chrome, Edge, Firefox nightly, possibly Safari (though I have not tested it).
Screenshots
Recording.2024-10-06.134348.mp4
Building
Supported platforms
Architecture
OS
Compiler
Notes
wasm32-emscripten
N/A
emsdk 3.1.64
Works
x64-windows
Windows 11 Home
Visual Studio 2022
Works
x64-linux
WSL2 Ubuntu 24.04.1 LTS
gcc 13.2.0
Works
x64-linux
Debian Trixie
gcc 14
Works
x64-linux
Ubuntu 22.04 LTS
gcc 12.2
Works
x64-linux
Ubuntu 24.04 LTS
gcc 13.2
Works
arm64-linux
Raspberry Pi OS (Debian bookworm) Oct 2024
gcc 12.2
Works
General considerations for Ubuntu
This may seem obvious, particularly if you are an experienced Linux user/developer, so this is for the avoidance of the doubt: building xframes on Ubuntu 24.04 means that the generated binary extension will run on Ubuntu 24.04 but not on Ubuntu 22.04 (or older). As part of doing our tests, the binary extension generated using Ubuntu 22.04 did work fine on Ubuntu 24.04. Moving forward, we'll try to build it on even earlier versions of Ubuntu, i.e. 20.04
Contributing
We welcome contributions! If you’re interested in helping develop xframes, please get in touch and I'll help you get started.
Contributors ✨
Thanks goes to these wonderful people (emoji key):