← Package directory
Available on winget

Install Odin Programming Language

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

Install with winget
winget install --id odin-lang.Odin
Upgrade
winget upgrade --id odin-lang.Odin
Uninstall
winget uninstall --id odin-lang.Odin

About Odin Programming Language

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

What's new in dev-2025-12

Breaking changes - BREAKING: Use chacha8rand as the default RNG. The old default generator is available under core:math/rand in rand_pcg.odin in case you require a seed to return the same sequence as before. New Language Features - Introduce #all_or_none for structs, which requires that struct literals have all or none of the fields set New Compiler Improvements - Use SIP hash as name canonicalization hash - Moved checking of -vet-unused-procedures and -vet-packages flags to after all flags are parsed - Fixes for 32 bit with regards to typeid - Fix #5894 - Remove #no_copy - Don't check proc signature similarity for imported Objective-C methods - Ubuntu arm ci and posix fixes - Fix allocation of anonymous globals - Fix #5967: Incorrect stack overflow warning for by ref switches over unions - Skip collision panic when package names aren't unique New Packages - Add vendor:curl Package Improvements - Improve docs for stable sort procedures - Fix: linalg.quaternion_from_forward_and_up - Clone unquoted strings in encoding/json - Add missing SetLayeredWindowAttributes - Add io uring API - Add FreeLibraryAndExitThread in kernel32. Add EnumProcessModules in psapi - Fix typo in NS.String_initWithCString - Remove the Darwin-specific paths from thread_unix - Fix thread_act_t size - Fix: make choice_bit_set respect bit_set domain - math/rand: Add range-based number generation procedures - Fix is_pointer_internally not handling Named Types - Faster big.itoa - Add Xoshiro256 RNG - Add LockFileEx/UnlockFileEx and related flags - Fix vendor:stb/image resize alpha_channel parameter type to c...

Read release notes

Version history

Version Updated Notes
dev-2025-12 Unknown Breaking changes - BREAKING: Use chacha8rand as the default RNG. The old default generator is available under core:math/rand in rand_pcg.odin in case you require a seed to return the same sequence as before. New Language...
dev-2025-11 Unknown Licensing Changes - Change Odin's LICENSE to zlib from BSD 3-clause New Language Features - intrinsics.concatenate - Concatentation of constant slices, strings, and some arrays at compile time - intrinsics.objc_super & @...
dev-2025-09 Unknown New Language Features - Native support for UTF-16 strings: string16 and cstring16 - Mostly for interfacing with Windows code, and other foreign code - Define Integer Division By Zero #5556 New Compiler Improvements - @(i...
dev-2025-08 Unknown No notes
dev-2025-06 Unknown No notes
dev-2025-03 Unknown ## New Language Features - ## New Compiler Improvements - Name Canonicalization - Deterministic Name Mangling Rules for Symbols (Procedures, Variables, Debug Types, etc) - typeid layout change - Always 8-bytes in size -...
dev-2025-02 Unknown New Language Features - Support #unroll(N) for with arrays Compiler Improvements - Enable -use-separate-module as default for all platforms (except wasm based ones) - General Bug Fixes - Remove erroneous warnings regardi...
dev-2025-01 Unknown New Language Features - `#+feature dynamic-literals` - All dynamic literals (maps and dynamic arrays) are disallowed by default to remove implicit allocations from Odin - If the user wants to allow this, it can be enable...
dev-2024-12 Unknown New Language Features N/A Compiler Improvements - Fix windows args parser problem from issue https://github.com/odin-lang/Odin/pull/4393. - Suggestion when assigning `enum` to `bit_set`. - Suggest `-microarch:native` if...
dev-2024-11 Unknown New Language Features - Compiler Improvements - General bug fixes - Fix 128-bit ABI issues caused by LLVM changes - Fix `#load_directory` containing directories - Add warning for `unsigned >= 0` like conditions in a `for...
dev-2024-10 Unknown New Language Features - Replace `//+` syntax with `#+` - Used in cases like `#+build windows` - `#min_field_align` and `#max_field_align` - deprecate `#field_align` in favour of `#min_field_align` - `#max_field_align` us...
dev-2024-09 Unknown New Language Features - Add support for linux_riscv64 and freestanding_riscv64 Compiler Improvements - Support RISC-V for the compiler itself - Fix crash if referencing import "aliased" in other file - Added a hint at en...
dev-2024-08 Unknown New Language Features Compiler Improvements - Update to LLVM 18.1.8 - Force compiler source to be parsed as UTF-8 (Windows) - Improve various compiler-internal asserts - Fix `#soa` assignment bug - Add error for `type_of...
dev-2024-07 Unknown New Language Features - Allow for constant strings in `foreign import`s - `#exists(<string>) -> bool` - `@(rodata)` - `context.random_generator` - Brand new `runtime.Random_Generator` interface Compiler Improvements - Br...
dev-2024-06 Unknown New Language Features - `intrinsics.type_is_matrix_row_major` + `intrinsics.type_is_matrix_column_major` - `#hash(<string>[, algo])` - `@(link_suffix=<string>)` Compiler Improvements - New NetBSD target support - Experim...
dev-2024-05 Unknown New Language Features - Compiler Improvements - `odin root` command - Normalize `ODIN_ROOT` path - Improvements to arm64 ABI for returning 0 sized types - Allow compiling with LLVM 18 (non-Windows targets) - Fix linking...
dev-2024-04 Unknown New Language Features - `bit_field` type ``` Foo :: bit_field u16 { // backing type must be an integer or array of integers x: i32 | 3, // signed integers will be signed extended on use y: u16 | 2 + 3, // general express...
dev-2024-04a Unknown Minor Update from dev-2024-04 For the full release notes of dev-2024-04, see its release (https://github.com/odin-lang/Odin/releases/tag/dev-2024-04) New Language Features - Compiler Improvements - nasm check fixes - Kee...
dev-2024-03 Unknown Distribution Changes - MacOS ARM releases and CI support - MacOS releases self-contained / bundle LLVM New Language Features - Compiler Improvements - General bug fixes in the compiler - Fix `-no-crt` on Darwin and Linux...