This repository is a separate copy of the same library in the main Mach repository, and is automatically kept in sync, so that anyone can use this library in their own project if they like!
This is an experimental Mach library, according to our stability guarantees:
Experimental libraries may have their APIs change without much notice, and you may have to look at recent changes in order to update your code.
Why this library is not declared stable yet
mach/core provides the power of Vulkan, DirectX, Metal, and modern OpenGL in a single concise graphics API - by compiling Google Chrome's WebGPU implementation natively via Zig (no cmake/ninja/gn/etc) into a single static library.
Supports Windows, Linux, and macOS today. WebAssembly and Mobile will also be supported under the same API in the near future.
Learn more: https://machengine.org/docs/core
In a libs
subdirectory of the root of your project:
git clone https://github.com/hexops/mach-core
Then in your build.zig
add:
...
const core = @import("libs/mach-core/build.zig");
pub fn build(b: *Build) void {
...
exe.addModule("core", core.module(b));
core.link(b, exe, .{});
}
Join the Mach community on Discord to discuss this project, ask questions, get help, etc.
Issues are tracked in the main Mach repository.
Contributions are very welcome. Pull requests must be sent to the main repository to avoid some complex merge conflicts we'd get by accepting contributions in both repositories. Once the changes are merged there, they'll get sync'd to this repository automatically.