# odin-lang/odin

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/odin-lang-odin).**

9,806 stars · 903 forks · Odin · zlib

## Links

- GitHub: https://github.com/odin-lang/Odin
- Homepage: https://odin-lang.org
- awesome-repositories: https://awesome-repositories.com/repository/odin-lang-odin.md

## Topics

`compiler` `language` `odin` `odin-lang` `odin-programming-language` `programming-language` `programming-languages`

## Description

Odin is a compiled, statically typed systems programming language designed for high-performance software development. It focuses on pragmatic low-level memory control, providing a toolset for manual memory management and precise control over hardware utilization.

The language is distinguished by its flexible memory model, which includes custom allocators and precise data layout capabilities to optimize resource usage. It features a comprehensive foreign function interface for importing assembly files and linking with external libraries using configurable calling conventions.

The type system supports parametric polymorphism for generic procedures and data structures, as well as discriminated unions and runtime type introspection. Additional core capabilities include enforced result handling, deferred execution, and the ability to embed binary assets directly into the compiled program.

Odin includes a built-in multi-threaded testing framework with integrated memory leak detection, timeout management, and failure reporting.

## Tags

### Operating Systems & Systems Programming

- [High-Performance Systems Programming](https://awesome-repositories.com/f/operating-systems-systems-programming/kernel-core-internals/system-programming-primitives/system-programming/high-performance-systems-programming.md) — Designed for high-performance systems programming with precise control over memory layout and hardware utilization.
- [Custom Memory Allocators](https://awesome-repositories.com/f/operating-systems-systems-programming/kernel-core-internals/process-and-memory-management/memory-management/allocation-strategies/dynamic-memory-allocation/custom-memory-allocators.md) — Supports custom allocator interfaces for precise control over memory allocation strategies.
- [Manual Memory Management Utilities](https://awesome-repositories.com/f/operating-systems-systems-programming/kernel-core-internals/process-and-memory-management/memory-management/allocation-strategies/memory-allocation-libraries/manual-memory-management-utilities.md) — Provides explicit allocation procedures and custom allocators for precise resource management. ([source](https://odin-lang.org/docs/demo/))

### Programming Languages & Runtimes

- [Enforced Result Handling](https://awesome-repositories.com/f/programming-languages-runtimes/enforced-result-handling.md) — Ensures return values from critical procedures are explicitly handled to prevent silent failures. ([source](https://odin-lang.org/docs/overview/))
- [Union Types](https://awesome-repositories.com/f/programming-languages-runtimes/language-features-paradigms/language-features/language-extensions/union-types.md) — Supports discriminated unions (sum types) that track the active member via a tag for safe runtime switching. ([source](https://odin-lang.org/docs/overview))
- [Discriminated Unions](https://awesome-repositories.com/f/programming-languages-runtimes/language-features-paradigms/language-features/language-extensions/union-types/discriminated-unions.md) — Implements discriminated unions that use internal tags for safe runtime type switching.
- [Polymorphic Logic](https://awesome-repositories.com/f/programming-languages-runtimes/language-features-paradigms/type-system-tools/type-definitions/variable-type-declarations/polymorphic-logic.md) — Enables the creation of functions and types that work with multiple data types using explicit type parameters. ([source](https://cdn.jsdelivr.net/gh/odin-lang/odin@master/README.md))
- [Foreign Function Interfaces](https://awesome-repositories.com/f/programming-languages-runtimes/language-interoperability/foreign-function-interfaces.md) — Implements a comprehensive foreign function interface for importing libraries and assembly files. ([source](https://odin-lang.org/docs/overview/))
- [Multiple Return Values](https://awesome-repositories.com/f/programming-languages-runtimes/multiple-return-values.md) — Supports multiple return values from procedures using both named and unnamed variables. ([source](https://odin-lang.org/docs/overview/))
- [Parametric Polymorphism](https://awesome-repositories.com/f/programming-languages-runtimes/parametric-polymorphism.md) — Provides a parametric polymorphism engine for creating generic procedures and data structures.
- [Systems and Performance Languages](https://awesome-repositories.com/f/programming-languages-runtimes/programming-language-varieties/programming-languages/language-specific-resources/systems-and-performance-languages.md) — A compiled language specifically designed for high-performance systems development and low-level memory control.
- [Statically Typed Languages](https://awesome-repositories.com/f/programming-languages-runtimes/programming-language-varieties/programming-languages/type-systems/type-checking-disciplines/statically-typed-languages.md) — Enforces type constraints at compile time while supporting parametric polymorphism and discriminated unions.
- [Type Conversion and Casting](https://awesome-repositories.com/f/programming-languages-runtimes/type-conversion-and-casting.md) — Implements explicit type casting and bit-cast transmutes for low-level memory manipulation. ([source](https://odin-lang.org/docs/overview))
- [Binary Asset Embedding](https://awesome-repositories.com/f/programming-languages-runtimes/binary-asset-embedding.md) — Allows embedding file contents and directory structures directly into the executable binary during compilation.
- [Deferred Execution](https://awesome-repositories.com/f/programming-languages-runtimes/deferred-execution.md) — Provides a deferred execution mechanism to run cleanup code automatically upon exiting a scope.
- [Calling Conventions](https://awesome-repositories.com/f/programming-languages-runtimes/function-argument-passing/calling-conventions.md) — Provides low-level control over calling conventions to ensure compatibility with foreign system binaries. ([source](https://odin-lang.org/docs/overview/))
- [Implicit Context Passing](https://awesome-repositories.com/f/programming-languages-runtimes/implicit-context-passing.md) — Uses implicit context passing to modify library behavior like logging and allocation without global state.
- [Runtime Introspection](https://awesome-repositories.com/f/programming-languages-runtimes/language-features-paradigms/language-features/object-extensions/runtime-introspection.md) — Stores type and module metadata in the binary for runtime examination of the program structure.
- [Type Narrowing Assertion](https://awesome-repositories.com/f/programming-languages-runtimes/language-features-paradigms/type-system-tools/type-definitions/variable-type-declarations/type-narrowing-assertion.md) — Provides runtime type assertions to convert union or abstract types into concrete forms. ([source](https://odin-lang.org/docs/overview/))
- [Standard Library Implementations](https://awesome-repositories.com/f/programming-languages-runtimes/programming-utilities/standard-libraries/standard-library-implementations.md) — Includes a standard library providing core and vendor-provided packages for common systems programming tasks. ([source](https://odin-lang.org/docs/examples/))

### Software Engineering & Architecture

- [Generic Data Structures](https://awesome-repositories.com/f/software-engineering-architecture/abstract-data-types/generic-data-abstractions/generic-data-structures.md) — Allows the definition of reusable data structures that operate across multiple types using explicit or implicit parameters. ([source](https://odin-lang.org/docs/overview/))
- [Cross-Platform Development](https://awesome-repositories.com/f/software-engineering-architecture/cross-platform-development.md) — Provides tools and strategies for building portable software that functions across multiple operating systems and platforms.
- [Implicit Context Management](https://awesome-repositories.com/f/software-engineering-architecture/implicit-context-management.md) — Implements implicit context management to intercept and modify behaviors like logging and allocation. ([source](https://odin-lang.org/docs/overview))
- [Memory Alignment Utilities](https://awesome-repositories.com/f/software-engineering-architecture/memory-alignment-utilities.md) — Ensures data structures are aligned and packed in memory to reduce waste and speed up parallel processing. ([source](https://odin-lang.org/docs/overview))
- [Bit-Packed Storage](https://awesome-repositories.com/f/software-engineering-architecture/memory-layout-optimizations/bit-packed-storage.md) — Provides bit-packed records and specialized fields to minimize memory footprint and optimize hardware alignment. ([source](https://odin-lang.org/docs/overview/))
- [Zero-Overhead Abstractions](https://awesome-repositories.com/f/software-engineering-architecture/zero-overhead-abstractions.md) — Compiles high-level features into efficient machine code to minimize execution overhead and maximize hardware utilization. ([source](https://odin-lang.org/docs/demo/))

### Testing & Quality Assurance

- [Automated Test Runners](https://awesome-repositories.com/f/testing-quality-assurance/software-testing/test-execution-orchestration/automated-test-runners.md) — Ships a built-in multi-threaded test runner that executes procedures across multiple packages. ([source](https://odin-lang.org/docs))
- [Built-in Testing Frameworks](https://awesome-repositories.com/f/testing-quality-assurance/built-in-testing-frameworks.md) — Ships a built-in multi-threaded testing framework with memory leak detection and timeout management.
- [Memory Leak Detection](https://awesome-repositories.com/f/testing-quality-assurance/debugging-diagnostics/memory-leak-detection.md) — Integrates memory allocation monitoring during tests to detect and report memory leaks. ([source](https://odin-lang.org/docs/testing/))
- [Test Execution Timeouts](https://awesome-repositories.com/f/testing-quality-assurance/general-testing-utilities/test-utilities-assertions/test-lifecycle-execution-control/test-execution-timeouts.md) — Includes test timeout management to terminate tests that run too long or enter infinite loops. ([source](https://odin-lang.org/docs/testing/))

### Data & Databases

- [Memory Layouts](https://awesome-repositories.com/f/data-databases/memory-layouts.md) — Enables efficient data packing using bit fields and specific record layouts for cache-efficient processing. ([source](https://cdn.jsdelivr.net/gh/odin-lang/odin@master/README.md))
- [Data Locality Optimizers](https://awesome-repositories.com/f/data-databases/query-optimizations/data-layout-optimizers/data-locality-optimizers.md) — Supports organizing records as arrays of structures or structures of arrays to maximize hardware acceleration. ([source](https://odin-lang.org/docs/overview/))

### DevOps & Infrastructure

- [Conditional Compilation](https://awesome-repositories.com/f/devops-infrastructure/cicd-pipeline-automation/core-build-engines/build-tooling/build-configuration-governance/platform-specific-source-resolution/conditional-compilation.md) — Supports conditional compilation based on constant expressions to handle platform-specific code. ([source](https://odin-lang.org/docs/overview/))
- [Asset Embedding](https://awesome-repositories.com/f/devops-infrastructure/cicd-pipeline-automation/core-build-engines/bundling-extension-architectures/build-tooling-architectures/asset-embedding.md) — Embeds static resources and string hashes directly into the compiled program binary. ([source](https://odin-lang.org/docs/overview))

### Game Development

- [Game Development Engines](https://awesome-repositories.com/f/game-development/game-engines-frameworks/game-engines/game-development-engines.md) — Supports game engine development through high-performance data structures and memory-aligned records for cache efficiency.

### Part of an Awesome List

- [Code Examples](https://awesome-repositories.com/f/awesome-lists/devtools/code-examples.md) — Comprehensive demonstration of language features.
