jakubtomsu/awesome-odin

A collection of Odin libraries, bindings, software and resources

Odin

1,068

171 commits

updated Oct 11, 2026

See the code

README

Logo

A community-managed list of awesome Odin libraries, software and resources.

Odin is a general-purpose programming language built for high-performance, modern systems and data-oriented programming.

Contents

Other Lists

[!NOTE] Many commonly used bindings are already included in the Vendor Collection which comes with the compiler

Getting Started

Packages

Libraries

Gamedev

NameDescriptionLicenseTags
Karl 2DOdin 2D game library. Beginner friendly and easy to modifyZlibFramework
Ravn EngineSimple and efficient framework for 2D and 3D game development.MITGamedev
LBP SerializationEasy-to-use LBP binary serialization utilityMITGamedev, Serialization, Assets
jobsJob systemMITGamedev
Godot ToolkitToolkit for Godot 4.4 to work with GDExtension and generating boilerplateApache 2.0Gamedev, Engine, Utility
glTF2Native Odin implementation of glTF2 loading file formatMITGamedev, Format, 3D
Aseprite loaderHandler for Aseprite's .ase/.aseprite, .aseprite-extension & extended .gpl files writen in OdinBSD 3-ClauseGamedev, 2D, Format
Odin + Raylib Hotreloading TemplateAn Odin + Raylib game template with Hot Reloading pre-setup. My game projects tend to have some things in common, so I made this template so I can get up and running quickerCustomGamedev, Template, Raylib
AnimaA 2D animation library for Odin. Inspired by the LÖVE library anim8MITGamedev, 2D, Utility, Raylib
ZTMESimple Tile Editor Made For Raylib In OdinMITGamedev, 2D, Utility, Editor, Raylib
pathgridA simple 2D grid-based pathfinding library for OdinBSD 3-Clause "New" or "Revised"
VEFontCacheA port of Vertex Engine GPU Font Cache (VEFontCache) for the Odin programming languageCustom
DuskA small game framework / project templateMITGamedev, Template, Framework, Engine, ECS
mikktspaceA port of Morten S. Mikkelsen's tangent space algorithm for OdinzlibGamedev, Graphics, 3D
ValhallaA graphics engine designed for rendering 3D scenes with a focus on non-photorealistic rendering techniquesMITGamedev, Vulkan, Graphics
AnvilNeural network inference in pure OdinMITML, ONNX
libretroSimple API that allows for the creation of games and emulatorsMITGamedev, Emulation
muninnA lightweight, high-performance, archetype-based Entity Component System (ECS)zlibGamedev, ECS, Performance
odecsA simple, modern ECS built in Odin.MITGamedev, ECS
moecsEasy to use motivated entity component system.MITGamedev, ECS
Odin Unity InteropOdin interoperability for Unity. Works with Windows, Mac, Linux, iOS, Android. Super-easy to generate C# bindings, and the package already ships with a lot of necessary ones.Apache 2.0GameDev, Unity, Engine, Utility
Marshmallow engineWIP Game Engine written in pure OdinNoneGamedev, Engine
tinaA strictly bounded, thread-per-core concurrency frameworkApache 2.0Parallelism, Concurency

Formats

NameDescriptionLicenseTags
Vox loaderSimple loader for MagicaVoxel's .vox modelsMITGamedev, Assets
LDtk utilitySimple loader for LDtk files. LDtk is a moder 2D level editor from the creator of Dead CellsMITGamedev, Assets, Tools
Tiled loaderA simple Tiled map loader.MITGamedev, Assets, Tools
File FormatsOdin implementations of various file formats - ISO, EBMLBSD-3Format
INI Parser.INI file parserMITFormat
PDB ReaderA library for reading .pdbs and dumping Windows stacktracesBSD-2-ClauseDebugging, Auxiliary
Java classfile parserA parser and verifier for Java .class filesMITFormat, Java classfile
RFC 3339 Date ParserParser for the RFC 3339 date & time spec written in odin, follows the TOML specNoneFormat, Parser
TOML ParserA simple TOML parserMIT
BML ParserStructured binary parser based on XML schemesNone

Networking

NameDescriptionLicenseTags
Odin HTTPA HTTP/1.1 server & client implementation for Odin purely written in Odin (besides OpenSSL)MITWebdev, Server, Networking

Webdev

NameDescriptionLicenseTags
GjallarhornBatteries included web frameworkMITWebdev
GraphQL ParserGraphQL language parserMITWebdev
Open-OstrichDBThe open source backend that powers OstrichDB.comApache 2.0Webdev, Database
OstrichDB-CLIA NoSQL/NoJSON document based DBMS directly in your terminal!Apache 2.0Database

Templating

NameDescriptionLicenseTags
MustacheMustache logic-less templating engineMITTemplate, Webdev
TempleTemplating engine that compiles to Odin io callsMITTemplate, Webdev
TemplatelessA lightweight, logicless templating library for the Odin programming language1-Clause BSD NON-AITemplate, Webdev

Data structures

NameDescriptionLicenseTags
Red/Black TreeRed Black Tree ImplementationNoneDatastructure
Piece TablePiece-Table implementation written in Odin, and comes with unlimited linear undo & redo capabilityMITDatastructure
Shared Memory QueueThread safe lock free ring buffers that seek to minimize false sharing, MPMC and SPMCNoneDatastructure, Multithreading

Other

NameDescriptionLicenseTags
ADS1256 driverDriver for Ti ADS1256MITEmbedded
ManiLua bidirectional bindings generatorNoneLua, Generator
odin-buildBuild system for OdinNoneAuxiliary, Tooling
SnowflakeTwitter Snowflake UID generationMITUID
CLI Argument ParserUsing types to specify how command line arguments should be parsedNoneUtility, CLI, Parser
Odin-style CLI Argument ParserA command-line argument parser mimicking the Odin compiler's styleMITCLI, Utility, Parser
Terminal ColorSimple, easy to use terminal colorsMITCLI, Utility
localeAn experimental Odin libray to manage locale informations. Inspired by findlocale C libraryFreeBSD
podin.pot generation utility from Odin sources to collect translatable messages to be managed with tools like PoEditFreeBSD
Muninn: Logging for OdinBringing joy to logging for Odin. Pretty, colored output or JSON terminal, JSON Lines in file, thread safe, optional per-thread output boxes, log rotation, and more...MITTools, Logging, Logger

Language Tooling

Compilers, transpilers, binding generators, and other language-related tools.

NameDescriptionLicenseTags
BlaiseBlaise Programming Language - A Language for Learning About Compilers. Made by Ginger BillBSD Zero Clausex86 codegen
VecCExperimental vector-oriented programming language with C codegenMITC codegen, SIMD
RunicBindings Generator and Intermediate Format for programming languages using the C-ABI, with support for C and OdinGNU v2.0

Built-in

This is a list of notable libraries which are distributed along with the Odin compiler. For a full list head over to Official Package Documentation.

Base

Base packages are required by the compiler

NameDescription
builtinContains Odin's predeclared identifiers, like basic types, procedures like len, size_of etc and many built-in constants like ODIN_DEBUG
intrinsicsContains Odin's compiler-level intrinsics, including many low-level procs like atomics, SIMD, X86 or WASM intrinsics and compile-time type reflection
runtimeThis is the runtime code required by the compiler. Contains definitions of context, allocator, logger, map, dynamic array, type_info etc. and implements things like appending to a dynamic array

Core

The core packages implement most of the common features you need while working with Odin

NameDescription
fmtString formatting and console printing
osCross-platform OS interface. Read files, change CWD, etc.
stringsCommon string operations
mathCommon math procedures
math/linalgLinear algebra package for 2D and 3D math with vectors, matricies and quaternions
memCommon memory operations and allocators
encoding/jsonImplements a JSON reader/writer, including a way to automatically marshal (serialize) structs
logImplements a console and a file logger
sortImplements sorting algorithms
syncSynchronization primitives for multithreading
threadCreate and manage OS threads
reflectRuntime type reflection
path/filepathFile path string operations

Vendor

Vendor packages are commonly-used third-party libraries distributed along with the compiler

NameDescriptionTags
raylibBindings for Raylib, a simple and easy-to-use library to enjoy videogames programmingGamedev, Graphics
glfwBindings for GLFW, a multi-platform library for OpenGL, OpenGL ES and Vulkan development on the desktopGamedev, Graphics
luaBindings for Lua, a powerful, simple and embeddable scripting languageLua
fontstashOdin implementation of Fontstash - a lightweight online font texture atlas builderGamedev, Text, Graphics
miniaudioBindings for Miniaudio, a lightweight audio libraryAudio, Gamedev
microuiOdin implementation of microui, a tiny immediate-mode UI libraryUI, Tools, ImGui, Gamedev
directx/d3d11D3D11 bindingsGamedev, Graphics, 3D
cgltfBindings for a GLTF asset loaderGamedev, Graphics, Format, Assets
darwin/MetalBindings for Metal APIGamedev, Graphics, 3D
stbBindings for libs from STBFormat, Gamedev, Assets, Utility
sdl2, sdl3Bindings for SDL, a cross-platform development libraryGamedev, Graphics, Audio, Networking

Bindings

List of Odin bindings to C/C++ libraries.

If you can't find the bindings you need, then you can try using this generator: https://github.com/karl-zylinski/odin-c-bindgen (or write the bindings by hand).

NameDescriptionLicenseTags
Dear ImguiGenerated Dear ImGui bindings using dear_bindings. About Dear ImGui is a bloat-free Graphical User interface for C++ with minimal dependenciesMITUI, ImGui, Gamedev, Tools, C++, Cross Platform
SokolOdin bindings for Sokol, a collection of single-header C libraries for cross-platform windowing, graphics, audio, file loading, and more!zlibGamedev, Input, Audio, Cross-Platform
AssimpBindings for Assimp, Open Asset Import Library is a library to load various 3d file formats into a shared, in-memory imediate format. It supports more than 40 file formats for import and a growing selection of file formats for exportMITAssets, Gamedev, Format
bcm2835Bindings for BCM2835 Broadcom chip/raspberry pi1/2/3/4MITEmbedded
clayHigh performance UI layout library in C (Official Odin Bindings)zlib/libpngUI Layout
Clipper2Polygon Clipping, Offsetting & TriangulationBSL-1.0Gamedev, 2D
CUE SDKBindings for the Corsair CUE SDK. Developers can use the iCUE SDK to access CORSAIR devices, enabling them to control device LEDs and create custom lighting experiences.Unlicense
DuckDBBindings for DuckDB, a fast in-process analytical database0BSDWebdev, Database, SQL
EFSWBindings for the Entropia file system watcherUnknownFiles
ffmpegBindings for ffmpeg, a complete, cross-platform solution to record, convert and stream audio and videoNoneVideo
FMODBindings for FMODMITGamedev, Audio
FreetypeA binding for FreeTypeMITGraphics, Text, Gamedev
harfbuzzBindings for HarfBuzzBSD 2-clauseText
ImageMagickBindings for the ImageMagick image manipulation libraryCustomImages
JoltBindings for the Jolt physics engineNoneGamedev, 3D, Physics
LibClangBindings for libClang for OdinNone
libpcapBindings for libpcapNoneNetworking
libui-ngBindings for libui-ng: a portable GUI library for C. "libui for the next generation"NoneUI, Tools
LLVMGenerated bindings for LLVM (LLVM-C 17.0.1), currently Windows-onlyNoneCompilers
LuauA fast, small, safe, gradually typed embeddable scripting language derived from LuaMITLanguage, Lua
LZ4Bindings for LZ4, an extremely fast lossless compression libraryBSD 2 ClauseCompression, Gamedev
MimallocBindings for mimallocMITMemory, Allocator
mpcThis is a binding to the mpc for Odin programming language. Mpc is a lightweight and powerful Parser Combinator library for CNoneParser, Language, Format
MySqlBindings for MySQL ClientMITDatabase, Webdev, SQL
NRIBindings for Nvidia NRI a low-level abstract rendering interface designed to support all low-level features of D3D12 and Vulkan GAPIsMITGraphics, Gamedev, Cross Platfrom
NuklearBindings for Nuklear, s single-header ANSI C immediate mode cross-platform GUI libraryNoneUI, ImGUI, Gamedev, Cross Platform
ObjCBindings for the objc 2.0 runtimeMITDarwin
odin-renderdocBindings for Renderdoc API, capture frames and open Renderdoc UI directly from your applicationMITGamedev, Graphics
ONNXBindings for ONNX and a generatorMITML, GPU
OpenALBindings for OpenAL, a cross-platform 3D audio API appropriate for use with gaming applications and many other types of audio applicationsNoneGamedev, Audio
PostgreSQLComplete & documented bindings for libpq (PostgreSQL)MITDatabase, Webdev, SQL
RaqmBindings for RaqmBSD 2-clauseText
RGFWRGFW is a cross platform, lightweight, single header window abstraction library for creating and managing windowsCC0Gamedev, Graphics, Platform
RureBindings for Rust RegexzlibRegex
SteamworksBindings for Steamworks SDKMITGamedev
SQLite3SQLite3 bindingsMITDatabase, Webdev
tinyfiledialogsBindings for the tinyfiledialogs native dialog box library.zlibUI
TracyBindings for the Tracy profilerBSD-2-ClauseGamedev, Performance
ufbxBindings for ufbx, a simple FBX loader libraryUnlicenseGamedev, Assets, 3D
ufbx (xandron's updated fork)Bindings for ufbx, a simple FBX loader libraryUnlicenseGamedev, Assets, 3D
WebUIBindings for WebUI, use your preferred language in the backend and modern web technologies in the frontendMITUI, Cross Platform
yyjsonBindings for yyjsonzlibSerialization
zeromqA binding for ZeroMQ, An open-source universal messaging libraryApache 2.0Networking
wsServerwsServer C WebSocket libraryMITWebSockets, Networking
Odin-SlangBings for Shader-SlangApache-2.0ML, GPU, Gamedev, Graphics

Gists

Useful Github Gists in Odin.

NameDescriptionTags
GLFW, OpenGL Window TutorialGLFW and OpenGL example with very verbose comments and links to documentation for learningGamedev, Graphics, GPU, Learning, OpenGL, GLFW
Metal in OdinExample of using Metal in Odin NativelyGamedev, Graphics, GPU, Metal, Darwin, SDL, Shaders
3D CollisionSimple raylib example of 3d FPS player movement with triangle collisionGamedev, Raylib, Graphics, Physics, 3D
Block AllocatorAllocator based on Sebastian Aaltonen's Offset Allocator, for suballocating GPU heapsGamedev, GPU, Memory, Allocator
Octahedral MappingSphere and Hemisphere Octahedral mapping visualization in Odin and RaylibGamedev, Graphics, GPU, Raylib
MicroUI SDL DemoA demo of MicroUI + SDL2Gamedev, UI, ImGui, SDL
MicroUI Raylib DemoA demo of MicroUI + RaylibGamedev, UI, ImGui, Raylib
SDL OpenGL DemoSimple SDL2 + OpenGL demoGamedev, Graphics, OpenGL, SDL, 3D
D3D11 in OdinSimple D3D11 based on d7's exampleGamedev, Graphics, Windows, SDL, 3D
Vulkan ExampleVulkan-tutorial example in OdinGamedev, Graphics, Vulkan, GLFW, Shaders
Minimal Metal WindowMinmal Cocoa Window with Metal APIGamedev, Darwin, Metal, Cocoa, Graphics
D3D12 TriangleSingle-procedure D3D12 triangle exampleGamedev, Graphics, D3D12, Shaders, SDL
UUIDV4UUID GeneratorUID, Cryptography, Webdev
WASM4 BindingsWASM-4 BindingsWebdev, WASM, Graphics
Odin logger for RaylibRaylib logging callback to Odin loggerGamedev, Tools, Utility
GLFW and Vulkan BoilerplateOdin, GLFW & Vulkan boilerplate for Drawing a Triangle based on https://vulkan-tutorial.comGamedev, Graphics, Vulkan, GLFW, Shaders
LLDB visualizationPython script for slice, map, and string formatting in LLDBDebugger, Tools, Utility
Realtime Collision DetectionPort of some 3d collision procedures from the 'Realtime Collision Detection' bookGamedev, Physics, Collision
Open window using Windows APIMinimal example of how to open a window using core:sys/windowsWindows, Graphics
Rect CutProcedures for cutting up a rect, useful for IMGUI layoutingUI, ImGui
SDL + sokol_gfx + D3D11Minimal D3D11 device and swapchain setup when using SDL with sokol_gfx instead of sokol_appGamedev
sokol_gfx + D3D11 setup without sokol_appMinimal example of sokol_gfx on native D3D11Graphics, Gamedev
Cubic curvesSample of various cubic curves (bezier, hermite, catmull-rom, b-spline) based on Freya's videoMath, Graphics, Gamedev

Resources

List of Odin tutorials, articles, videos and other resources.

NameDescriptionTags
Odin OverviewOfficial Odin language overviewExample, Article
Memory Allocation StrategiesSeries about memory allocation by GingerBillArticle
demo.odinA demo of basically all odin featuresExample
Introduction to the Odin programming languageVideo series about Odin and programmingYoutube, Playlist
Space Shooter with SDL2 and OdinVideo series about programming a Space Shooter game with SDL2 and OdinYoutube, Tutorial, Playlist
Odin Programming Language: An IntroductionIntroduction to the Odin Programming Language by Ginger Bill from 2020-11-26Youtube, Talk
Jai vs Odin systems programming languagesComparison of Jai and Odin (Non-spicy takes!)Youtube
Why I Use Odin for Game and Engine DevelopmentVideo essay explaining what makes Odin great for game and engine developmentYoutube, Gamedev
Make games using Odin + RaylibSeries about making a 2D platformer in Odin and RaylibYoutube, Playlist, Gamedev
5 Reasons why Odinlang is great for gamedevVideo about what makes odin great for gamedevYoutube, Gamedev
Odin + WASM = 💙Example of using Odin, WASM and WebGL together.Example, WASM, Webdev
Solar Storm RendererA deepdive into the rendering techology of the game Solar StormArticle
Hot ReloadHot reload gameplay code. What, why, limitations and examples!Gamedev, Utility, Article
Raylib + Odin + WASMExperiment with using Raylib + Odin on webGamedev, Raylib, WASM, Example
Odin OpenCV DemoOdin with OpenCV image processing demoOpenCV, Demo
Playing audio files with miniaudioPlay audio files from memory with Odin #loadMiniaudio, Audio, Demo
Introduction to the Odin Programming LanguageLong article about the basics of Odin. Finishes off with some examples of useful core librariesArticle
Snake game from start to finish90 minute video of how to implement a snake game using RaylibYoutube, Gamedev
Setup Sublime Text for OdinShows how to turn Sublime Text into a powerful Odin development environment, including code completionYoutube, Utility
Make a Breakout game from start to finishKarl Zylinski shows how to make a breakout clone in Odin+Raylib in 2 hoursYoutube, Tutorial, Gamedev
Make a Snake game from start to finishBeginner tutorial about making a simple snake game in RaylibYoutube, Tutorial, Gamedev
Simple Undo/RedoAn article about a grug brained approach to level editor historyArticle, Gamedev
Odin SDL3 GPU TutorialA video tutorial series on how to get started with the SDL3 GPU APIYoutube, Tutorial, Playlist

Interviews

Tooling

A linter is built into the compiler, see odin help check, specifically the -vet-* and -strict-style flags.

Built with Odin

Open-source Projects

Open-source software implemented in Odin.

NameDescriptionLicenseTags
Spall Webspall is a profiler library and a web-frontend for exploring your code and digging into potential performance problemsMITPerformance, Webdev, WASM, WebGL
TodoolA To-Do Editor with different modes, advanced movement & powerful commands. Track your development cycle with easeMITUtility, Tools
HTMX Example TODO List AppAn implementation of Todo MVC using my in development Odin web stack.NoneWebdev, Tools
LD55 - The Last SummonerLD55 entry made with Odin and Raylib. You are the last summoner alive in an apocalypse and you have to survivor using your summons!GPL-3.0Gamedev, Raylib
AsterboidsRogue-like space shooter. Made with Odin + RaylibMITGamedev, Raylib, 2D
SolitareSolitare clone using Odin and RaylibNoneGamedev, 2D, Raylib, Clone
TetrisSimple tetris cloneNoneGamedev, 2D, Raylib, Clone
My PongPong clone in Odin and RaylibNoneGamedev, 2D, Raylib, Clone
Simple Neural NetworkA little experiment with machine learning based on 3Blue1Brown's series on basic deep learningNoneML
LasersA small 2d laser simulation with SDL2 to learn OdinNoneGamedev, 2D, SDL
H264 DecodingA minimal reference version of H264 video decoding with D3D11 and Windows Media Foundation APINoneExample
SpurtleWordle clone but with 6 lettersGPL-3.0Raylib, Gamedev, Clone
Atlas BuilderBuilds an atlas for use in Odin 2D video games. Supports aseprite filesMITGamedev, Tools
lucynesAn NES emulator written in Odin.MITGamedev, Emulator
BragiAn image processing pipeline in Vulkan for testing post processing effectsMITVulkan, Shader
mouniverseSpace game crafted with Odin, karl2d, box2d, moecs.GPL-3.0Gamedev, ECS

Closed-Source Projects

A list of interesting software built in Odin. It's not open-source, but it can still be useful or inspiring.

NameDescriptionTags
EmberGenReal-time smoke, fire and explosion simulations for film and gamesGamedev, GPU, Graphics, Physics
GeoGenReal-time Landscape, terrain and planet generator appGamedev, GPU, Graphics
Solar StormSci-fi artillery game with local multiplayer (NOTE: the source code is available if you buy the game on itch.io)Gamedev, GPU, Physics, 2D
CAT & ONIONA whimsical adventure game about a cat (NOTE: the source code is available if you buy the game on itch.io)Gamedev, 2D
entry00A simple 2d game made in 8 hoursGamedev, 2D

Editor Support

NameDescriptionLicense
OLSOdin language serverMIT
JetBrains IDEsOdin support with static code analysis for IntelliJ and othersMIT
GNU/EmacsOdin editing mode for GNU/EmacsNone
FlycheckGNU/Emacs flycheck support for OdinUnlicense
VimOdin highlighting for VimMIT
Tree SitterOdin Tree-sitter grammarMIT

Deprecated

A list of outdated/deprecated/archived libraries, included for the sake of completeness and in case someone wants to update it.

Links

Contributions

Please submit a PR to add any interesting/useful Odin projects! Make sure to properly link license and add useful tags for easier searching.

gamedev
odin
odin-lang
resources

jakubtomsu/awesome-odin

A collection of Odin libraries, bindings, software and resources

Odin

1,068

171 commits

updated Oct 11, 2026

See the code

README

Logo

A community-managed list of awesome Odin libraries, software and resources.

Odin is a general-purpose programming language built for high-performance, modern systems and data-oriented programming.

Contents

Other Lists

[!NOTE] Many commonly used bindings are already included in the Vendor Collection which comes with the compiler

Getting Started

Packages

Libraries

Gamedev

NameDescriptionLicenseTags
Karl 2DOdin 2D game library. Beginner friendly and easy to modifyZlibFramework
Ravn EngineSimple and efficient framework for 2D and 3D game development.MITGamedev
LBP SerializationEasy-to-use LBP binary serialization utilityMITGamedev, Serialization, Assets
jobsJob systemMITGamedev
Godot ToolkitToolkit for Godot 4.4 to work with GDExtension and generating boilerplateApache 2.0Gamedev, Engine, Utility
glTF2Native Odin implementation of glTF2 loading file formatMITGamedev, Format, 3D
Aseprite loaderHandler for Aseprite's .ase/.aseprite, .aseprite-extension & extended .gpl files writen in OdinBSD 3-ClauseGamedev, 2D, Format
Odin + Raylib Hotreloading TemplateAn Odin + Raylib game template with Hot Reloading pre-setup. My game projects tend to have some things in common, so I made this template so I can get up and running quickerCustomGamedev, Template, Raylib
AnimaA 2D animation library for Odin. Inspired by the LÖVE library anim8MITGamedev, 2D, Utility, Raylib
ZTMESimple Tile Editor Made For Raylib In OdinMITGamedev, 2D, Utility, Editor, Raylib
pathgridA simple 2D grid-based pathfinding library for OdinBSD 3-Clause "New" or "Revised"
VEFontCacheA port of Vertex Engine GPU Font Cache (VEFontCache) for the Odin programming languageCustom
DuskA small game framework / project templateMITGamedev, Template, Framework, Engine, ECS
mikktspaceA port of Morten S. Mikkelsen's tangent space algorithm for OdinzlibGamedev, Graphics, 3D
ValhallaA graphics engine designed for rendering 3D scenes with a focus on non-photorealistic rendering techniquesMITGamedev, Vulkan, Graphics
AnvilNeural network inference in pure OdinMITML, ONNX
libretroSimple API that allows for the creation of games and emulatorsMITGamedev, Emulation
muninnA lightweight, high-performance, archetype-based Entity Component System (ECS)zlibGamedev, ECS, Performance
odecsA simple, modern ECS built in Odin.MITGamedev, ECS
moecsEasy to use motivated entity component system.MITGamedev, ECS
Odin Unity InteropOdin interoperability for Unity. Works with Windows, Mac, Linux, iOS, Android. Super-easy to generate C# bindings, and the package already ships with a lot of necessary ones.Apache 2.0GameDev, Unity, Engine, Utility
Marshmallow engineWIP Game Engine written in pure OdinNoneGamedev, Engine
tinaA strictly bounded, thread-per-core concurrency frameworkApache 2.0Parallelism, Concurency

Formats

NameDescriptionLicenseTags
Vox loaderSimple loader for MagicaVoxel's .vox modelsMITGamedev, Assets
LDtk utilitySimple loader for LDtk files. LDtk is a moder 2D level editor from the creator of Dead CellsMITGamedev, Assets, Tools
Tiled loaderA simple Tiled map loader.MITGamedev, Assets, Tools
File FormatsOdin implementations of various file formats - ISO, EBMLBSD-3Format
INI Parser.INI file parserMITFormat
PDB ReaderA library for reading .pdbs and dumping Windows stacktracesBSD-2-ClauseDebugging, Auxiliary
Java classfile parserA parser and verifier for Java .class filesMITFormat, Java classfile
RFC 3339 Date ParserParser for the RFC 3339 date & time spec written in odin, follows the TOML specNoneFormat, Parser
TOML ParserA simple TOML parserMIT
BML ParserStructured binary parser based on XML schemesNone

Networking

NameDescriptionLicenseTags
Odin HTTPA HTTP/1.1 server & client implementation for Odin purely written in Odin (besides OpenSSL)MITWebdev, Server, Networking

Webdev

NameDescriptionLicenseTags
GjallarhornBatteries included web frameworkMITWebdev
GraphQL ParserGraphQL language parserMITWebdev
Open-OstrichDBThe open source backend that powers OstrichDB.comApache 2.0Webdev, Database
OstrichDB-CLIA NoSQL/NoJSON document based DBMS directly in your terminal!Apache 2.0Database

Templating

NameDescriptionLicenseTags
MustacheMustache logic-less templating engineMITTemplate, Webdev
TempleTemplating engine that compiles to Odin io callsMITTemplate, Webdev
TemplatelessA lightweight, logicless templating library for the Odin programming language1-Clause BSD NON-AITemplate, Webdev

Data structures

NameDescriptionLicenseTags
Red/Black TreeRed Black Tree ImplementationNoneDatastructure
Piece TablePiece-Table implementation written in Odin, and comes with unlimited linear undo & redo capabilityMITDatastructure
Shared Memory QueueThread safe lock free ring buffers that seek to minimize false sharing, MPMC and SPMCNoneDatastructure, Multithreading

Other

NameDescriptionLicenseTags
ADS1256 driverDriver for Ti ADS1256MITEmbedded
ManiLua bidirectional bindings generatorNoneLua, Generator
odin-buildBuild system for OdinNoneAuxiliary, Tooling
SnowflakeTwitter Snowflake UID generationMITUID
CLI Argument ParserUsing types to specify how command line arguments should be parsedNoneUtility, CLI, Parser
Odin-style CLI Argument ParserA command-line argument parser mimicking the Odin compiler's styleMITCLI, Utility, Parser
Terminal ColorSimple, easy to use terminal colorsMITCLI, Utility
localeAn experimental Odin libray to manage locale informations. Inspired by findlocale C libraryFreeBSD
podin.pot generation utility from Odin sources to collect translatable messages to be managed with tools like PoEditFreeBSD
Muninn: Logging for OdinBringing joy to logging for Odin. Pretty, colored output or JSON terminal, JSON Lines in file, thread safe, optional per-thread output boxes, log rotation, and more...MITTools, Logging, Logger

Language Tooling

Compilers, transpilers, binding generators, and other language-related tools.

NameDescriptionLicenseTags
BlaiseBlaise Programming Language - A Language for Learning About Compilers. Made by Ginger BillBSD Zero Clausex86 codegen
VecCExperimental vector-oriented programming language with C codegenMITC codegen, SIMD
RunicBindings Generator and Intermediate Format for programming languages using the C-ABI, with support for C and OdinGNU v2.0

Built-in

This is a list of notable libraries which are distributed along with the Odin compiler. For a full list head over to Official Package Documentation.

Base

Base packages are required by the compiler

NameDescription
builtinContains Odin's predeclared identifiers, like basic types, procedures like len, size_of etc and many built-in constants like ODIN_DEBUG
intrinsicsContains Odin's compiler-level intrinsics, including many low-level procs like atomics, SIMD, X86 or WASM intrinsics and compile-time type reflection
runtimeThis is the runtime code required by the compiler. Contains definitions of context, allocator, logger, map, dynamic array, type_info etc. and implements things like appending to a dynamic array

Core

The core packages implement most of the common features you need while working with Odin

NameDescription
fmtString formatting and console printing
osCross-platform OS interface. Read files, change CWD, etc.
stringsCommon string operations
mathCommon math procedures
math/linalgLinear algebra package for 2D and 3D math with vectors, matricies and quaternions
memCommon memory operations and allocators
encoding/jsonImplements a JSON reader/writer, including a way to automatically marshal (serialize) structs
logImplements a console and a file logger
sortImplements sorting algorithms
syncSynchronization primitives for multithreading
threadCreate and manage OS threads
reflectRuntime type reflection
path/filepathFile path string operations

Vendor

Vendor packages are commonly-used third-party libraries distributed along with the compiler

NameDescriptionTags
raylibBindings for Raylib, a simple and easy-to-use library to enjoy videogames programmingGamedev, Graphics
glfwBindings for GLFW, a multi-platform library for OpenGL, OpenGL ES and Vulkan development on the desktopGamedev, Graphics
luaBindings for Lua, a powerful, simple and embeddable scripting languageLua
fontstashOdin implementation of Fontstash - a lightweight online font texture atlas builderGamedev, Text, Graphics
miniaudioBindings for Miniaudio, a lightweight audio libraryAudio, Gamedev
microuiOdin implementation of microui, a tiny immediate-mode UI libraryUI, Tools, ImGui, Gamedev
directx/d3d11D3D11 bindingsGamedev, Graphics, 3D
cgltfBindings for a GLTF asset loaderGamedev, Graphics, Format, Assets
darwin/MetalBindings for Metal APIGamedev, Graphics, 3D
stbBindings for libs from STBFormat, Gamedev, Assets, Utility
sdl2, sdl3Bindings for SDL, a cross-platform development libraryGamedev, Graphics, Audio, Networking

Bindings

List of Odin bindings to C/C++ libraries.

If you can't find the bindings you need, then you can try using this generator: https://github.com/karl-zylinski/odin-c-bindgen (or write the bindings by hand).

NameDescriptionLicenseTags
Dear ImguiGenerated Dear ImGui bindings using dear_bindings. About Dear ImGui is a bloat-free Graphical User interface for C++ with minimal dependenciesMITUI, ImGui, Gamedev, Tools, C++, Cross Platform
SokolOdin bindings for Sokol, a collection of single-header C libraries for cross-platform windowing, graphics, audio, file loading, and more!zlibGamedev, Input, Audio, Cross-Platform
AssimpBindings for Assimp, Open Asset Import Library is a library to load various 3d file formats into a shared, in-memory imediate format. It supports more than 40 file formats for import and a growing selection of file formats for exportMITAssets, Gamedev, Format
bcm2835Bindings for BCM2835 Broadcom chip/raspberry pi1/2/3/4MITEmbedded
clayHigh performance UI layout library in C (Official Odin Bindings)zlib/libpngUI Layout
Clipper2Polygon Clipping, Offsetting & TriangulationBSL-1.0Gamedev, 2D
CUE SDKBindings for the Corsair CUE SDK. Developers can use the iCUE SDK to access CORSAIR devices, enabling them to control device LEDs and create custom lighting experiences.Unlicense
DuckDBBindings for DuckDB, a fast in-process analytical database0BSDWebdev, Database, SQL
EFSWBindings for the Entropia file system watcherUnknownFiles
ffmpegBindings for ffmpeg, a complete, cross-platform solution to record, convert and stream audio and videoNoneVideo
FMODBindings for FMODMITGamedev, Audio
FreetypeA binding for FreeTypeMITGraphics, Text, Gamedev
harfbuzzBindings for HarfBuzzBSD 2-clauseText
ImageMagickBindings for the ImageMagick image manipulation libraryCustomImages
JoltBindings for the Jolt physics engineNoneGamedev, 3D, Physics
LibClangBindings for libClang for OdinNone
libpcapBindings for libpcapNoneNetworking
libui-ngBindings for libui-ng: a portable GUI library for C. "libui for the next generation"NoneUI, Tools
LLVMGenerated bindings for LLVM (LLVM-C 17.0.1), currently Windows-onlyNoneCompilers
LuauA fast, small, safe, gradually typed embeddable scripting language derived from LuaMITLanguage, Lua
LZ4Bindings for LZ4, an extremely fast lossless compression libraryBSD 2 ClauseCompression, Gamedev
MimallocBindings for mimallocMITMemory, Allocator
mpcThis is a binding to the mpc for Odin programming language. Mpc is a lightweight and powerful Parser Combinator library for CNoneParser, Language, Format
MySqlBindings for MySQL ClientMITDatabase, Webdev, SQL
NRIBindings for Nvidia NRI a low-level abstract rendering interface designed to support all low-level features of D3D12 and Vulkan GAPIsMITGraphics, Gamedev, Cross Platfrom
NuklearBindings for Nuklear, s single-header ANSI C immediate mode cross-platform GUI libraryNoneUI, ImGUI, Gamedev, Cross Platform
ObjCBindings for the objc 2.0 runtimeMITDarwin
odin-renderdocBindings for Renderdoc API, capture frames and open Renderdoc UI directly from your applicationMITGamedev, Graphics
ONNXBindings for ONNX and a generatorMITML, GPU
OpenALBindings for OpenAL, a cross-platform 3D audio API appropriate for use with gaming applications and many other types of audio applicationsNoneGamedev, Audio
PostgreSQLComplete & documented bindings for libpq (PostgreSQL)MITDatabase, Webdev, SQL
RaqmBindings for RaqmBSD 2-clauseText
RGFWRGFW is a cross platform, lightweight, single header window abstraction library for creating and managing windowsCC0Gamedev, Graphics, Platform
RureBindings for Rust RegexzlibRegex
SteamworksBindings for Steamworks SDKMITGamedev
SQLite3SQLite3 bindingsMITDatabase, Webdev
tinyfiledialogsBindings for the tinyfiledialogs native dialog box library.zlibUI
TracyBindings for the Tracy profilerBSD-2-ClauseGamedev, Performance
ufbxBindings for ufbx, a simple FBX loader libraryUnlicenseGamedev, Assets, 3D
ufbx (xandron's updated fork)Bindings for ufbx, a simple FBX loader libraryUnlicenseGamedev, Assets, 3D
WebUIBindings for WebUI, use your preferred language in the backend and modern web technologies in the frontendMITUI, Cross Platform
yyjsonBindings for yyjsonzlibSerialization
zeromqA binding for ZeroMQ, An open-source universal messaging libraryApache 2.0Networking
wsServerwsServer C WebSocket libraryMITWebSockets, Networking
Odin-SlangBings for Shader-SlangApache-2.0ML, GPU, Gamedev, Graphics

Gists

Useful Github Gists in Odin.

NameDescriptionTags
GLFW, OpenGL Window TutorialGLFW and OpenGL example with very verbose comments and links to documentation for learningGamedev, Graphics, GPU, Learning, OpenGL, GLFW
Metal in OdinExample of using Metal in Odin NativelyGamedev, Graphics, GPU, Metal, Darwin, SDL, Shaders
3D CollisionSimple raylib example of 3d FPS player movement with triangle collisionGamedev, Raylib, Graphics, Physics, 3D
Block AllocatorAllocator based on Sebastian Aaltonen's Offset Allocator, for suballocating GPU heapsGamedev, GPU, Memory, Allocator
Octahedral MappingSphere and Hemisphere Octahedral mapping visualization in Odin and RaylibGamedev, Graphics, GPU, Raylib
MicroUI SDL DemoA demo of MicroUI + SDL2Gamedev, UI, ImGui, SDL
MicroUI Raylib DemoA demo of MicroUI + RaylibGamedev, UI, ImGui, Raylib
SDL OpenGL DemoSimple SDL2 + OpenGL demoGamedev, Graphics, OpenGL, SDL, 3D
D3D11 in OdinSimple D3D11 based on d7's exampleGamedev, Graphics, Windows, SDL, 3D
Vulkan ExampleVulkan-tutorial example in OdinGamedev, Graphics, Vulkan, GLFW, Shaders
Minimal Metal WindowMinmal Cocoa Window with Metal APIGamedev, Darwin, Metal, Cocoa, Graphics
D3D12 TriangleSingle-procedure D3D12 triangle exampleGamedev, Graphics, D3D12, Shaders, SDL
UUIDV4UUID GeneratorUID, Cryptography, Webdev
WASM4 BindingsWASM-4 BindingsWebdev, WASM, Graphics
Odin logger for RaylibRaylib logging callback to Odin loggerGamedev, Tools, Utility
GLFW and Vulkan BoilerplateOdin, GLFW & Vulkan boilerplate for Drawing a Triangle based on https://vulkan-tutorial.comGamedev, Graphics, Vulkan, GLFW, Shaders
LLDB visualizationPython script for slice, map, and string formatting in LLDBDebugger, Tools, Utility
Realtime Collision DetectionPort of some 3d collision procedures from the 'Realtime Collision Detection' bookGamedev, Physics, Collision
Open window using Windows APIMinimal example of how to open a window using core:sys/windowsWindows, Graphics
Rect CutProcedures for cutting up a rect, useful for IMGUI layoutingUI, ImGui
SDL + sokol_gfx + D3D11Minimal D3D11 device and swapchain setup when using SDL with sokol_gfx instead of sokol_appGamedev
sokol_gfx + D3D11 setup without sokol_appMinimal example of sokol_gfx on native D3D11Graphics, Gamedev
Cubic curvesSample of various cubic curves (bezier, hermite, catmull-rom, b-spline) based on Freya's videoMath, Graphics, Gamedev

Resources

List of Odin tutorials, articles, videos and other resources.

NameDescriptionTags
Odin OverviewOfficial Odin language overviewExample, Article
Memory Allocation StrategiesSeries about memory allocation by GingerBillArticle
demo.odinA demo of basically all odin featuresExample
Introduction to the Odin programming languageVideo series about Odin and programmingYoutube, Playlist
Space Shooter with SDL2 and OdinVideo series about programming a Space Shooter game with SDL2 and OdinYoutube, Tutorial, Playlist
Odin Programming Language: An IntroductionIntroduction to the Odin Programming Language by Ginger Bill from 2020-11-26Youtube, Talk
Jai vs Odin systems programming languagesComparison of Jai and Odin (Non-spicy takes!)Youtube
Why I Use Odin for Game and Engine DevelopmentVideo essay explaining what makes Odin great for game and engine developmentYoutube, Gamedev
Make games using Odin + RaylibSeries about making a 2D platformer in Odin and RaylibYoutube, Playlist, Gamedev
5 Reasons why Odinlang is great for gamedevVideo about what makes odin great for gamedevYoutube, Gamedev
Odin + WASM = 💙Example of using Odin, WASM and WebGL together.Example, WASM, Webdev
Solar Storm RendererA deepdive into the rendering techology of the game Solar StormArticle
Hot ReloadHot reload gameplay code. What, why, limitations and examples!Gamedev, Utility, Article
Raylib + Odin + WASMExperiment with using Raylib + Odin on webGamedev, Raylib, WASM, Example
Odin OpenCV DemoOdin with OpenCV image processing demoOpenCV, Demo
Playing audio files with miniaudioPlay audio files from memory with Odin #loadMiniaudio, Audio, Demo
Introduction to the Odin Programming LanguageLong article about the basics of Odin. Finishes off with some examples of useful core librariesArticle
Snake game from start to finish90 minute video of how to implement a snake game using RaylibYoutube, Gamedev
Setup Sublime Text for OdinShows how to turn Sublime Text into a powerful Odin development environment, including code completionYoutube, Utility
Make a Breakout game from start to finishKarl Zylinski shows how to make a breakout clone in Odin+Raylib in 2 hoursYoutube, Tutorial, Gamedev
Make a Snake game from start to finishBeginner tutorial about making a simple snake game in RaylibYoutube, Tutorial, Gamedev
Simple Undo/RedoAn article about a grug brained approach to level editor historyArticle, Gamedev
Odin SDL3 GPU TutorialA video tutorial series on how to get started with the SDL3 GPU APIYoutube, Tutorial, Playlist

Interviews

Tooling

A linter is built into the compiler, see odin help check, specifically the -vet-* and -strict-style flags.

Built with Odin

Open-source Projects

Open-source software implemented in Odin.

NameDescriptionLicenseTags
Spall Webspall is a profiler library and a web-frontend for exploring your code and digging into potential performance problemsMITPerformance, Webdev, WASM, WebGL
TodoolA To-Do Editor with different modes, advanced movement & powerful commands. Track your development cycle with easeMITUtility, Tools
HTMX Example TODO List AppAn implementation of Todo MVC using my in development Odin web stack.NoneWebdev, Tools
LD55 - The Last SummonerLD55 entry made with Odin and Raylib. You are the last summoner alive in an apocalypse and you have to survivor using your summons!GPL-3.0Gamedev, Raylib
AsterboidsRogue-like space shooter. Made with Odin + RaylibMITGamedev, Raylib, 2D
SolitareSolitare clone using Odin and RaylibNoneGamedev, 2D, Raylib, Clone
TetrisSimple tetris cloneNoneGamedev, 2D, Raylib, Clone
My PongPong clone in Odin and RaylibNoneGamedev, 2D, Raylib, Clone
Simple Neural NetworkA little experiment with machine learning based on 3Blue1Brown's series on basic deep learningNoneML
LasersA small 2d laser simulation with SDL2 to learn OdinNoneGamedev, 2D, SDL
H264 DecodingA minimal reference version of H264 video decoding with D3D11 and Windows Media Foundation APINoneExample
SpurtleWordle clone but with 6 lettersGPL-3.0Raylib, Gamedev, Clone
Atlas BuilderBuilds an atlas for use in Odin 2D video games. Supports aseprite filesMITGamedev, Tools
lucynesAn NES emulator written in Odin.MITGamedev, Emulator
BragiAn image processing pipeline in Vulkan for testing post processing effectsMITVulkan, Shader
mouniverseSpace game crafted with Odin, karl2d, box2d, moecs.GPL-3.0Gamedev, ECS

Closed-Source Projects

A list of interesting software built in Odin. It's not open-source, but it can still be useful or inspiring.

NameDescriptionTags
EmberGenReal-time smoke, fire and explosion simulations for film and gamesGamedev, GPU, Graphics, Physics
GeoGenReal-time Landscape, terrain and planet generator appGamedev, GPU, Graphics
Solar StormSci-fi artillery game with local multiplayer (NOTE: the source code is available if you buy the game on itch.io)Gamedev, GPU, Physics, 2D
CAT & ONIONA whimsical adventure game about a cat (NOTE: the source code is available if you buy the game on itch.io)Gamedev, 2D
entry00A simple 2d game made in 8 hoursGamedev, 2D

Editor Support

NameDescriptionLicense
OLSOdin language serverMIT
JetBrains IDEsOdin support with static code analysis for IntelliJ and othersMIT
GNU/EmacsOdin editing mode for GNU/EmacsNone
FlycheckGNU/Emacs flycheck support for OdinUnlicense
VimOdin highlighting for VimMIT
Tree SitterOdin Tree-sitter grammarMIT

Deprecated

A list of outdated/deprecated/archived libraries, included for the sake of completeness and in case someone wants to update it.

Links

Contributions

Please submit a PR to add any interesting/useful Odin projects! Make sure to properly link license and add useful tags for easier searching.

gamedev
odin
odin-lang
resources

Project health

Latest release

3.2.8 · Jun 12, 2024

Releases this year

0

Significant stargazers

P.J. Finlay

129 followers · starred Aug 2024

Borislav Stanimirov

528 followers · starred May 2024

Nathan Youngman

461 followers · starred Oct 2025

Alexander F. Rødseth

652 followers · starred Oct 2025