Zeppelin
Zeppelin is a cross-platform 2D graphics and window library in pure zig*. It features:
- Vulkan-based vector graphics
- window handling
- input handling (including an xkb parser on wayland!)
- built-in text rendering using either Andrew's TrueType or harfbuzz
- clipboard support
Zeppelin running the nanovg demo:
While zeppelin was written to enable pure-Zig GUI development, it is also suitable for:
- 2D games
- 2D off-screen rendering
- as a convenient but very incomplete Vulkan abstraction layer
Zeppelin tries to be as self-contained as possible to keep complexity low and to prepare for a future free from C and C++. Therefore, it does not have any hard dependency on C/C++ libraries besides libc. No sdl, glfw, libwayland, or libxkbcommon. At the same time, this is also the reason why zeppelin can't just give you an OpenGL or Vulkan graphics context, as both EGL and Vulkan depend on libwayland.
Currently, Linux (Wayland) and Windows are supported. Android support is planned. MacOS/iOS support is not planned at the moment but contributions in that direction are welcome!
Zeppelin is in an alpha stage but with a decent feature set. API will change.
*Libc is currently required to load a vulkan driver; optionally depends on harfbuzz for non-latin text shaping.