This page documents the external libraries bundled under the thirdparty/ directory of the Godot Engine repository: their purposes, versions, licenses, and how they integrate into the engine. It does not cover Godot's own subsystems that consume these libraries; for that context, see the relevant system pages (e.g., Rendering System, Text Shaping System, Build System).
Godot bundles third-party libraries directly into the source tree rather than relying on system-provided packages. This ensures reproducible builds across all target platforms. Each library lives in its own subdirectory under thirdparty/, and the canonical inventory with upstream URLs, versions, and applied patches is maintained in thirdparty/README.md
Licensing information for all bundled libraries is tracked in COPYRIGHT.txt using the Debian machine-readable copyright format.
Many libraries have Godot-specific patch files (.patch) stored alongside their source, applied to fix build issues or integrate the library more tightly with engine internals.
Each library occupies a named subdirectory. The naming convention matches the entries in thirdparty/README.md.
thirdparty/
├── accesskit/
├── amd-fsr/
├── amd-fsr2/
├── angle/
├── astcenc/
├── basis_universal/
├── brotli/
├── certs/
├── clipper2/
├── cvtt/
├── d3d12ma/
├── directx_headers/
├── doctest/
├── dr_libs/
├── embree/
├── enet/
├── etcpak/
├── fonts/
├── freetype/
├── gamepadmotionhelpers/
├── glad/
├── glslang/
├── graphite/
├── grisu2/
├── harfbuzz/
├── icu4c/
├── jolt_physics/
├── libbacktrace/
├── libjpeg-turbo/
├── libktx/
├── libogg/
├── libpng/
├── libtheora/
├── libvorbis/
├── libwebp/
├── linuxbsd_headers/
├── manifold/
├── mbedtls/
├── meshoptimizer/
├── metal-cpp/
├── mingw-std-threads/
├── miniupnpc/
├── minizip/
├── misc/
├── msdfgen/
├── openxr/
├── pcre2/
├── re-spirv/
├── recastnavigation/
├── rvo2/ # contains rvo2_2d/ and rvo2_3d/
├── sdl/
├── smaa/
├── spirv-cross/
├── spirv-headers/
├── spirv-reflect/
├── swappy-frame-pacing/
├── thorvg/
├── tinyexr/
├── ufbx/
├── vhacd/
├── volk/
├── vulkan/
├── wayland/
├── wayland-protocols/
├── wslay/
├── xatlas/
├── zlib/
└── zstd/
Sources: thirdparty/README.md1-10 COPYRIGHT.txt1-50
| Directory | Library | Version | License | Purpose |
|---|---|---|---|---|
amd-fsr | AMD FidelityFX Super Resolution 1 | 1.0.2 | MIT | Spatial upscaling (ffx_a.h, ffx_fsr1.h) |
amd-fsr2 | AMD FidelityFX Super Resolution 2 | 2.2.1 | MIT | Temporal upscaling pipeline |
angle | ANGLE | chromium/5907 | BSD-3-Clause | GLES header stubs (include/) |
d3d12ma | D3D12 Memory Allocator | 3.1.0 | MIT | GPU memory allocation for Direct3D 12 |
directx_headers | DirectX Headers | main | MIT | D3D12 API headers |
glad | glad | 2.0.4 | CC0 1.0 + Apache 2.0 | OpenGL/EGL/GLX function loader (gl.c, egl.c, glx.c) |
glslang | glslang | vulkan-sdk-1.4.335.0 | glslang | GLSL→SPIR-V compiler |
metal-cpp | metal-cpp | 26.0 | Apache 2.0 | C++ bindings for Apple Metal |
re-spirv | re-spirv | git | MIT | SPIR-V specialization constant optimizer |
smaa | SMAA | git (2013) | MIT | Anti-aliasing lookup textures |
spirv-cross | SPIRV-Cross | git | Apache 2.0 | SPIR-V → GLSL/MSL cross-compiler |
spirv-headers | SPIRV-Headers | vulkan-sdk-1.4.335.0 | MIT | SPIR-V opcode/type definitions |
spirv-reflect | SPIRV-Reflect | vulkan-sdk-1.4.335.0 | Apache 2.0 | SPIR-V shader reflection |
volk | volk | vulkan-sdk-1.4.335.0 | MIT | Vulkan function pointer loader (volk.h, volk.c) |
vulkan | Vulkan Headers + VMA | vulkan-sdk-1.4.335.0 | Apache 2.0 | Vulkan API headers; also includes vk_mem_alloc.h |
Sources: thirdparty/README.md20-50 thirdparty/README.md413-1200 COPYRIGHT.txt197-640
| Directory | Library | Version | License | Purpose |
|---|---|---|---|---|
astcenc | Arm ASTC Encoder | 5.3.0 | Apache 2.0 | ASTC texture encode/decode |
basis_universal | Basis Universal | git | Apache 2.0 | Supercompressed texture transcoding |
cvtt | Convection Texture Tools | git (2022) | MIT | BC1–BC7 texture compression |
etcpak | etcpak | 2.0 | BSD-3-Clause | ETC1/ETC2/DXT texture compression |
libktx | KTX Software | 4.4.2 | Apache 2.0 | KTX texture container read/write |
Sources: thirdparty/README.md62-95 thirdparty/README.md265-285 thirdparty/README.md567-592 COPYRIGHT.txt213-390
| Directory | Library | Version | License | Purpose |
|---|---|---|---|---|
libjpeg-turbo | libjpeg-turbo | 3.1.3 | BSD-3-Clause + IJG | JPEG encode/decode |
libpng | libpng | 1.6.54 | libpng/zlib | PNG encode/decode |
libwebp | libwebp | 1.6.0 | BSD-3-Clause | WebP encode/decode |
tinyexr | TinyEXR | 1.0.12 | BSD-3-Clause | OpenEXR image load/save (tinyexr.h) |
Sources: thirdparty/README.md546-659 thirdparty/README.md1099-1113 COPYRIGHT.txt379-416
| Directory | Library | Version | License | Purpose |
|---|---|---|---|---|
dr_libs | dr_libs (dr_mp3) | mp3-0.7.2 | Public Domain / MIT-0 | MP3 decode (dr_mp3.h) |
libogg | libogg | 1.3.6 | BSD-3-Clause | Ogg bitstream container |
libtheora | libtheora | 1.2.0 | BSD-3-Clause | Theora video decode |
libvorbis | libvorbis | 1.3.7 | BSD-3-Clause | Vorbis audio decode |
Sources: thirdparty/README.md203-215 thirdparty/README.md592-643 COPYRIGHT.txt390-413
| Directory | Library | Version | License | Purpose |
|---|---|---|---|---|
brotli | Brotli | 1.2.0 | MIT | Brotli decompression (WOFF2 fonts) |
fonts | Various | see below | Various OFL-1.1/Apache 2.0 | Bundled UI and editor fonts |
freetype | FreeType | 2.14.1 | FreeType License (BSD-like) | Font rasterization |
graphite | Graphite | 1.3.14 | MIT | Complex script shaping (Graphite fonts) |
harfbuzz | HarfBuzz | 12.3.2 | MIT | OpenType text shaping |
icu4c | ICU4C | 78.1 | Unicode | Unicode data, locale, and string operations |
msdfgen | msdfgen | 1.13 | MIT | Multi-channel signed distance field generation for glyphs |
Sources: thirdparty/README.md96-108 thirdparty/README.md286-355 thirdparty/README.md356-500 COPYRIGHT.txt220-366
| Font | Version | License |
|---|---|---|
| DroidSans (CJK fallback) | pre-2014 | Apache 2.0 |
| Inter (UI default) | 4.1 | OFL-1.1 |
| JetBrains Mono (code editor) | 2.304 | OFL-1.1 |
| Noto Sans (Bengali, Devanagari, Georgian, Hebrew, Malayalam, Oriya, Sinhala, Tamil, Telugu, Thai) | various | OFL-1.1 |
| Open Sans | git | OFL-1.1 |
| Vazirmatn (Arabic script UI) | 33.003 | OFL-1.1 |
Sources: thirdparty/README.md286-354 COPYRIGHT.txt279-307
| Directory | Library | Version | License | Purpose |
|---|---|---|---|---|
clipper2 | Clipper2 | 1.5.4 | BSL 1.0 | 2D polygon clipping and offsetting |
jolt_physics | JoltPhysics | 5.5.0 | MIT | 3D rigid body physics |
manifold | Manifold | 3.3.2 | Apache 2.0 | 3D boolean mesh operations (CSG) |
recastnavigation | Recast | 1.6.0 | zlib | Navigation mesh build and query |
rvo2 | RVO2 (2D + 3D) | git | Apache 2.0 | Optimal Reciprocal Collision Avoidance |
vhacd | V-HACD | git (2020) | BSD-3-Clause | Approximate convex decomposition |
xatlas | xatlas | git | MIT | UV lightmap atlas generation |
Sources: thirdparty/README.md120-135 thirdparty/README.md510-530 thirdparty/README.md668-985 COPYRIGHT.txt562-677
| Directory | Library | Version | License | Purpose |
|---|---|---|---|---|
certs | Mozilla CA bundle | git | MPL 2.0 | TLS root certificate trust store (ca-bundle.crt) |
enet | ENet | 1.3.18 | MIT | Reliable UDP networking with Godot socket extensions |
mbedtls | Mbed TLS | 3.6.5 | Apache 2.0 | TLS/SSL, cryptography |
miniupnpc | MiniUPnP | 2.3.3 | BSD-3-Clause | UPnP port mapping |
wslay | Wslay | git | MIT | WebSocket protocol |
Sources: thirdparty/README.md109-119 thirdparty/README.md243-265 thirdparty/README.md680-768 COPYRIGHT.txt226-270
| Directory | Library | Version | License | Purpose |
|---|---|---|---|---|
minizip | MiniZip | 1.3.1.2 | zlib | ZIP file read/write |
zlib | zlib | — | Zlib | Deflate compression; used by many other libraries |
zstd | Zstandard | — | BSD-3-Clause | Zstandard fast compression |
Sources: thirdparty/README.md768-784 COPYRIGHT.txt679-687
| Directory | Library | Version | License | Purpose |
|---|---|---|---|---|
accesskit | AccessKit C | 0.18.0 | MIT | Accessibility/screen reader API (accesskit.h) |
gamepadmotionhelpers | GamepadMotionHelpers | git (2023) | MIT | IMU motion sensor fusion (GamepadMotion.hpp) |
libbacktrace | libbacktrace | git (2022) | BSD-3-Clause | Stack trace on Windows |
linuxbsd_headers | Linux/BSD headers | system | — | Platform headers for cross-compilation |
mingw-std-threads | mingw-std-threads | git (2023) | BSD-2-Clause | std::thread polyfill for MinGW |
openxr | OpenXR SDK | 1.1.54 | Apache 2.0 | XR/VR runtime API |
sdl | SDL3 | 3.2.28 | Zlib | HID/gamepad input; includes hidapi 0.14.0 |
swappy-frame-pacing | Swappy | git | Apache 2.0 | Android frame pacing via Vulkan |
Sources: thirdparty/README.md8-20 thirdparty/README.md371-385 thirdparty/README.md529-546 thirdparty/README.md889-1019
| Directory | Library | Version | License | Purpose |
|---|---|---|---|---|
embree | Intel Embree | 4.4.0 | Apache 2.0 | High-performance ray tracing (lightmapper backend) |
Sources: thirdparty/README.md217-238 COPYRIGHT.txt263-268
| Directory | Library | Version | License | Purpose |
|---|---|---|---|---|
doctest | doctest | 2.4.12 | MIT | Unit test framework (doctest.h; dev/testing only) |
grisu2 | Grisu2 | git | Apache 2.0 + MIT | Fast float-to-decimal serialization (grisu2.h) |
meshoptimizer | meshoptimizer | 1.0 | MIT | Mesh compression and optimization |
pcre2 | PCRE2 | 10.47 | BSD-3-Clause | Perl-compatible regular expressions |
thorvg | ThorVG | 0.15.16 | MIT | SVG and Lottie animation rendering |
ufbx | ufbx | 0.21.2 | MIT | FBX file parsing (ufbx.c, ufbx.h) |
Sources: thirdparty/README.md188-202 thirdparty/README.md452-467 thirdparty/README.md716-730 thirdparty/README.md920-936 thirdparty/README.md1081-1125
misc/ — Single-File LibrariesThe thirdparty/misc/ directory holds small single-file libraries that do not warrant their own subdirectory.
| File | Library | License | Purpose |
|---|---|---|---|
bcdec.h | bcdec | MIT | BC1–BC7 texture decoding |
cubemap_coeffs.h | Activision cubemap coefficients | MIT | Reflection probe filtering constants |
fastlz.{c,h} | FastLZ | MIT | LZ-based fast compression |
FastNoiseLite.h | FastNoise Lite | MIT | Procedural noise generation |
ifaddrs-android.{cc,h} | libjingle (Google) | BSD-3-Clause | Network interface enumeration on Android |
mikktspace.{c,h} | MikkTSpace | Zlib | Tangent space calculation for normal maps |
nvapi_minimal.h | NVIDIA NVAPI (excerpt) | MIT | NVIDIA-specific API stub |
ok_color.h | OK Lab | MIT | Perceptual OK Lab/OKLch color space |
ok_color_shader.h | OK Lab (shader) | MIT | OK Lab shader code |
pcg.{cpp,h} | PCG32 | Apache 2.0 | Pseudorandom number generator |
polypartition.{cpp,h} | PolyPartition | MIT | 2D polygon triangulation and partition |
qoa.{c,h} | Quite OK Audio | MIT | QOA audio format encode/decode |
r128.{c,h} | r128 | Public Domain | 128-bit fixed-point arithmetic |
smaz.{c,h} | SMAZ | BSD-3-Clause | Short string compression |
smolv.{cpp,h} | SMOL-V | Public Domain/MIT | Compact SPIR-V encoding |
stb_rect_pack.h | stb | Public Domain/MIT | Rectangle bin packing (for atlas layout) |
yuv2rgb.h | yuv2rgb | BSD | YUV→RGB color conversion |
Sources: thirdparty/README.md785-870 COPYRIGHT.txt457-544
Most thirdparty libraries are compiled by Godot's module system. Each module has a SCsub build script that adds the thirdparty source files to the build. The pattern is consistent: the module clones the environment, sets include paths, compiles thirdparty sources with warnings disabled, and then compiles the Godot wrapper sources.
Diagram: tinyexr module integration
Sources: modules/tinyexr/SCsub1-42 modules/tinyexr/register_types.cpp38-58 modules/tinyexr/image_loader_tinyexr.cpp39-290 modules/tinyexr/image_saver_tinyexr.cpp147-285
The SCsub for tinyexr demonstrates two important integration details:
TINYEXR_USE_THREAD is enabled, allowing concurrent EXR loading (modules/tinyexr/SCsub22-23)TINYEXR_USE_MINIZ is set to 0, so tinyexr relies on Godot's bundled zlib instead of its own miniz (modules/tinyexr/SCsub25-26)This pattern of redirecting a library's internal dependencies to already-bundled equivalents is repeated across many libraries (e.g., basis_universal and libktx both use the same zstd instance via patches).
Some libraries are included directly by engine core or platform code without a module wrapper.
Diagram: SPIR-V toolchain in the rendering backend
Sources: thirdparty/README.md1020-1165 COPYRIGHT.txt582-639
Godot's thirdparty/ directory contains code under a range of licenses. The table below summarizes the licenses present.
| License | Representative Libraries |
|---|---|
| MIT / Expat | accesskit, amd-fsr, brotli, cvtt, d3d12ma, directx_headers, doctest, enet, gamepadmotionhelpers, graphite, harfbuzz, jolt_physics, meshoptimizer, mingw-std-threads, msdfgen, pcg, smaa, spirv-headers, thorvg, ufbx, volk |
| Apache 2.0 | astcenc, basis_universal, embree, libktx, manifold, mbedtls, metal-cpp, openxr, pcg, rvo2, spirv-cross, spirv-reflect, swappy-frame-pacing, vulkan |
| BSD-3-Clause | angle, etcpak, libjpeg-turbo, libogg, libtheora, libvorbis, libwebp, libbacktrace, miniupnpc, pcre2, tinyexr, vhacd, wslay, zstd |
| zlib | minizip, recastnavigation, sdl, zlib |
| OFL-1.1 | Inter, JetBrains Mono, Noto Sans family, OpenSans, Vazirmatn |
| MPL 2.0 | certs (Mozilla CA bundle) |
| BSL 1.0 | clipper2 |
| FreeType License | freetype |
| Unicode License | icu4c |
| glslang License | glslang |
| Public Domain / Unlicense | dr_libs, r128, smolv, stb_rect_pack |
The full machine-readable listing with per-file copyright notices is in COPYRIGHT.txt
Many libraries carry .patch files in their directories. These are applied on top of the upstream source and tracked in thirdparty/README.md with the Godot pull request that introduced each patch.
Common patch categories:
| Patch Purpose | Example Libraries |
|---|---|
Disable exceptions (-fno-exceptions compatibility) | clipper2, embree, mingw-std-threads |
| MinGW/LLVM build fixes | d3d12ma, embree, mingw-std-threads |
| External zlib/zstd (redirect internal deps) | basis_universal, tinyexr |
| Platform-specific compiler warnings | amd-fsr2, libwebp, FastNoiseLite |
Explicit #include additions | basis_universal, embree, mingw-std-threads, thorvg |
| Godot-specific configuration | enet (IPv6 + DTLS socket), glslang, grisu2 |
Sources: thirdparty/README.md40-200 thirdparty/doctest/patches/0001-ciso646-version.patch1-25
The diagram below maps groups of thirdparty libraries to the Godot subsystems that consume them, using subsystem names that correspond to directory paths in the codebase.
Sources: thirdparty/README.md1-1200 COPYRIGHT.txt192-687 modules/tinyexr/SCsub1-42 modules/cvtt/SCsub1-45
Refresh this wiki
This wiki was recently refreshed. Please wait 2 days to refresh again.