Shaderc is a collection of tools and libraries for compiling shaders—small programs that run on GPUs—into SPIR-V, the intermediate representation used by the Vulkan graphics API. It provides both a command-line tool (glslc) and a C/C++ library (libshaderc) that wrap the functionality of glslang (the Khronos reference compiler for GLSL) and SPIRV-Tools to deliver a modern, scriptable, and efficient shader compilation workflow. The glslc compiler offers a GCC/Clang-like interface for building GLSL and HLSL shaders, making it easy to integrate into existing build systems. Meanwhile, libshaderc exposes a stable API that allows developers to programmatically compile shader strings into SPIR-V modules within graphics engines and tools. Shaderc supports advanced features such as file inclusion (#include), concurrency, and cross-platform builds, and it maintains backward compatibility for long-term projects.
Features
- GLSL/HLSL to SPIR-V compilation via glslc
- Bindings available for Python, Rust, Go, .NET, and Common Lisp
- Docker image support for isolated builds
- Tested and shipped as part of the Android NDK
- Integrates with glslang and SPIRV-Tools
- Supports standard concurrency and multithreading