GadgetCore spawned out of work on GadgetEngine. The goal was to pull some general functionality out of that to make major refactors easier, while also making it easier to kick off new projects without wasting time retrofitting/decoupling existing code.
- Minimize Boilerplate: Get new projects up and running as quickly as possible.
- Decoupled Modules: Use what you need, ignore what you don't. Don't pay for what you don't use.
- Platform Abstraction: You should never need to directly call a platform-specific function or an underlying system API.
GadgetCore officially supports Windows, Mac, Linux, and Android.
This will be expanded to include WebAssembly, game consoles, and iOS some time in the future. Most features should work on most platforms regardless of official support status. Bug reports for unsupported platforms are welcome.
This library is in early development and is considered unstable. Expect frequent and unceremonious API breaks at this stage. I also do not plan to guarantee ABI stability for the foreseeable future. This will be updated as we approach a stable release.
Requires:
- C++23 (GCC 14, Clang 19, MSVC 14.37)
- CMake 3.28
GadgetCore is designed to be built from source, used with CMake and FetchContent, and linked statically. You can find canonical usage examples in GadgetEngine's experimental branch or in RenderSoft.
Pre-built binaries and package manager distributions are not available at this time.