A high-performance 2D vector graphics library using Vulkan as its rendering backend, with a Cairo-like API.
vkvg is a 2D vector graphics library that uses Vulkan as its rendering backend to deliver high-performance GPU-accelerated graphics. It solves the need for modern, efficient 2D rendering by providing low-level access to Vulkan features while maintaining a familiar API similar to Cairo. The library supports advanced graphics operations like gradients, text rendering, and image processing.
Graphics engineers and developers working on performance-critical 2D rendering applications, such as game engines, visualization tools, or custom UI frameworks, who need Vulkan-level control.
Developers choose vkvg for its combination of Vulkan's high performance and a Cairo-like API, offering significant speed improvements over traditional CPU-based 2D libraries. Its thread-safe design and support for modern graphics features make it ideal for demanding real-time rendering scenarios.
Vulkan 2D graphics library
Leverages Vulkan for hardware-accelerated rendering, offering significant speed improvements over CPU-based libraries, as shown in performance benchmarks included in the README.
Follows the same API pattern as Cairo, reducing the learning curve for developers familiar with Cairo and easing porting efforts for existing projects.
Integrates font caching with FreeType or stb_truetype for glyphs and HarfBuzz for text shaping, enabling efficient and accurate multilingual text rendering.
Contexts are designed to be thread-safe, allowing concurrent rendering operations which is beneficial for multi-threaded applications like game engines or UI frameworks.
The library is in alpha development with the core API 'mostly stabilized,' meaning potential breaking changes, bugs, and incomplete features like operators listed in the 'To Do' section.
Requires Vulkan SDK, CMake, and optional libraries like FontConfig and HarfBuzz, making setup non-trivial—evident from the detailed Windows build tutorial needed for configuration.
Documentation is 'in progress' and structured unit testing is a 'To Do' item, which can hinder debugging and integration for new users relying on comprehensive guides.
VKVG is an open-source alternative to the following products:
ncnn is a high-performance neural network inference framework optimized for the mobile platform
Cross-platform, graphics API agnostic, "Bring Your Own Engine/Framework" style rendering library.
A multi-platform library for OpenGL, OpenGL ES, Vulkan, window and input
MoltenVK is a Vulkan Portability implementation. It layers a subset of the high-performance, industry-standard Vulkan graphics and compute API over Apple's Metal graphics framework, enabling Vulkan applications to run on macOS, iOS and tvOS.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.