A cross-platform C++ system abstraction library for managing windows and performing OS tasks across desktop, mobile, and web.
CrossWindow is a cross-platform system abstraction library written in C++ that provides a unified API for creating and managing windows, handling input, and performing OS-specific tasks. It solves the problem of writing platform-specific code for each target operating system by abstracting away the underlying platform details while still exposing native capabilities when needed.
C++ developers building cross-platform desktop, mobile, or web applications who need consistent window management and input handling across Windows, macOS, Linux, iOS, Android, and WebAssembly.
Developers choose CrossWindow because it offers a simple, intuitive API that works consistently across all major platforms while still providing access to platform-specific features, eliminating the need to write and maintain separate codebases for each target OS.
💻📱 A cross platform system abstraction library written in C++ for managing windows and performing OS tasks.
Supports Windows, macOS, Linux, iOS, Android, WebAssembly, and headless environments with comprehensive unit tests and CI coverage, ensuring reliability across diverse targets.
Provides dedicated CMake functions like xwin_add_executable and clear build instructions, streamlining cross-platform project setup and reducing configuration overhead.
Abstracts keyboard, mouse, touch, and gamepad inputs into a consistent event system, as demonstrated in the usage example with xwin::EventQueue for cross-device compatibility.
Allows controlled access to platform-specific capabilities like Mac transparency and mobile accelerometer, balancing abstraction with necessary native functionality.
The README lists Android as 'In Progress,' meaning it's not fully stable or feature-complete, potentially causing issues for production mobile applications.
Focuses solely on window and input management without graphics rendering or UI components, forcing developers to integrate and maintain separate libraries for visual content.
Building for WebAssembly requires manual installation of Emscripten and execution of multiple command-line steps, which can be error-prone and time-consuming compared to other platforms.
A curated list of awesome C++ (or C) frameworks, libraries, resources, and shiny things. Inspired by awesome-... stuff.
Protocol Buffers - Google's data interchange format
JSON for Modern C++
ASP.NET Core is a cross-platform .NET framework for building modern cloud-based web applications on Windows, Mac, or Linux.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.