HackerReposA FIELD GUIDE TO OPEN SOURCE
ProSponsor the shelf♧ 0
← Back to top all-time
odin-lang
Odin
Odin2019–2026
odin-lang / Odin

Odin

Odin Programming Language

24Distinct people
32Mentions
1Explicit recommenders
12.3KGitHub stars
REPOSITORY AT A GLANCE

What to know before exploring

What it is

Odin Programming Language

GitHub

Where it is used

No documented product use was verified in the last source check.

What people are saying

Odin is a programming language without any silly complex build system, it is as simple as "odin build .", even for large projects. Linking is done by describing it as part of…

gingerBill used a recommendation phrase. 3 indexed comments match. This is a phrase match, not a verdict.

No classified warning is attached to this page. Read the discussions before treating silence as approval.

Also in these discussions

Mentioned in the same Hacker News threads. That is not proof they are substitutes.

This week on Hacker News

Nov 7–Nov 14 UTC · Direct repository links and separately labeled related project stories. Indexed through 11/14/2026, 5:04:57 PM UTC.

No direct repository links were found in the indexed HN discussions over the past seven days. Older discussions are available below.

Mentions over time

HN mentions by year32 dated mentions

Observed mentions: 2019-02-22 17:54:18 UTC to 2026-08-22 21:34:25 UTC.

0369122019-01-01 00:00:00 UTC to 2020-01-01 00:00:00 UTC (exclusive): 3 mentions; 1 submissions, 2 comments20192020-01-01 00:00:00 UTC to 2021-01-01 00:00:00 UTC (exclusive): 2 mentions; 0 submissions, 2 comments2021-01-01 00:00:00 UTC to 2022-01-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments2022-01-01 00:00:00 UTC to 2023-01-01 00:00:00 UTC (exclusive): 12 mentions; 2 submissions, 10 comments20222023-01-01 00:00:00 UTC to 2024-01-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments2024-01-01 00:00:00 UTC to 2025-01-01 00:00:00 UTC (exclusive): 3 mentions; 1 submissions, 2 comments2025-01-01 00:00:00 UTC to 2026-01-01 00:00:00 UTC (exclusive): 4 mentions; 2 submissions, 2 comments2026-01-01 00:00:00 UTC to 2027-01-01 00:00:00 UTC (exclusive): 6 mentions; 1 submissions, 5 comments. Incomplete calendar period.2026*

* An incomplete calendar period is marked with an outlined bar. Its count is not directly comparable with a full period.

Counts come from the repository’s dated source evidence. Index cutoff: 2026-11-02 08:16:59 UTC.

View mention counts and date ranges
UTC ranges include their start and exclude their end. Select a period to filter the source evidence.
PeriodStart (UTC)End (exclusive, UTC)MentionsSubmissionsComments
20192019-01-01 00:00:00 UTC2020-01-01 00:00:00 UTC312
20202020-01-01 00:00:00 UTC2021-01-01 00:00:00 UTC202
20212021-01-01 00:00:00 UTC2022-01-01 00:00:00 UTC101
20222022-01-01 00:00:00 UTC2023-01-01 00:00:00 UTC12210
20232023-01-01 00:00:00 UTC2024-01-01 00:00:00 UTC101
20242024-01-01 00:00:00 UTC2025-01-01 00:00:00 UTC312
20252025-01-01 00:00:00 UTC2026-01-01 00:00:00 UTC422
2026 (partial)2026-01-01 00:00:00 UTC2027-01-01 00:00:00 UTC615

What Hacker News says

32 sources
I'm not sure the example template was supposed to be canonical, vs demonstrating multiple output destructuring. Certainly the actual instruction definition in the checker library seems to understand that there could be two possible inputs: https://github.com/odin-lang/Odin/blob/4247507dd5e31c9fd8716... But I'm also not entirely sure why the example should not have compiled. It seems to me that the idea here is to be able to define a typed set of something equivalent to a function that inlines some assembly, but nothing about that inherently requires that the number of input or output parameters to the template match the parameters in the underlying assembly calls. There's no reason (in my mind anyway) why this shouldn't be a perfectly valid template: // Returns the extended feature flags obtained by calling CPUID // with EAX=7 and
Read the rest
ECX=1 cpu_extended_feature_flags :: asm() -> (a, b, c, d: u32) [ a = %eax, b = %ebx, c = %ecx, d = %edx, ] { mov %eax 0x7 mov %ecx 0x1 cpuid }
In Everyone says assembly is untyped—everyone is wrong
I think both Bill and Jon have discussed this at length and are both mutually respectful of what problems each are trying to solve, could be wrong. At the least, I think it's disingenuous to suggest that Odin is "mostly copied" from Jai just because they have a few similarities and share inspirations. See [1] where Bill discusses the influences and where they've diverged longer-form. [1]: https://github.com/odin-lang/Odin/wiki/Odin-vs-Jai
In Odin 1.0 Announcement
> I'm very confused on why C3 or Odin rarely get any attention at all, despite being in the same C-replacement crowd Your observation is valid, and many would say because something smells very fishy with what HN is doing. Zig is pushed at extremely nonsensical levels on HN, despite there being very worthy and interesting language contenders in the category: C3[1], Odin[2], Vlang[3], Dlang[4], Zen C[5], etc... We rarely get to see news about these other languages, but instead are constantly saturated with and hit over the head with news about Zig (despite all kinds of issues and being beta). And as if people don't have interests in or don't want to see anything about other young or newer languages in the category. [1]: https://github.com/c3lang/c3c [2]: https://github.com/odin-lang/odin [3]: https://freedium-mirror.cfd/https://levelup.gitc
Read the rest
onnected.com... (The V Language: The Best Parts of Go, Rust, and Python — All in One) [4]: https://freedium-mirror.cfd/https://levelup.gitconnected.com... (The D Language: A Better C/C++ Alternative Only a Few Programmers Know) [5]: https://github.com/zenc-lang/zenc
In Zig's new bitCast semantics and LLVM back end improvements
The issue is there are a number of Golang alternative languages. Solod has a lot of competition (from most to least GitHub stars): 1) https://github.com/vlang/v (Vlang) 2) https://github.com/odin-lang/odin (Odin) 3) https://github.com/goplus/xgo (Xgo, formerly Goplus) 4) https://github.com/borgo-lang/borgo (Borgo) 5) https://github.com/mitchellh/gox (Gox) 6) https://github.com/MadAppGang/dingo (Dingo) 7) https://github.com/ivov/lisette (Lisette) 8) https://github.com/anzellai/sky (Sky) 9) https://github.com/halcyonnouveau/soppo (Soppo)
In Solod v0.1: Go ergonomics, practical stdlib, native C interop
Thank you. I am not going to have "fn" stop me from trying out C3 anyways. There is a C (single header-only) library[1] that determines CPU features at runtime (similar to that of what libsodium does), so I might try to use that with C3 and implement BLAKE2. That might be a good starting point, or perhaps even TOTP, my friend told me implementing TOTP might give me some insight into the language, but for that I will need base32 (I checked, it exists[2]) and SHA{1,256,512}-HMAC, which may not be available in C3, although there may be an OpenSSL binding already, or perhaps I could directly use OpenSSL from C3? The latter would be pretty cool if so. Regarding the mentioned C library, it might not work, because it is header-only, and it generates the C functions using macros (see line 219). What do you think? Would this work from C3? [1] http
Read the rest
s://zolk3ri.name/cgit/cpudetect/tree/cpudetect.h [2] https://github.com/c3lang/c3c/blob/master/lib/std/encoding/b... --- I checked base32.c3. I am comparing it to Odin's, which can be found at https://github.com/odin-lang/Odin/blob/master/core/encoding/.... Apparently they added a way to gracefully handle error cases. Is it possible to do so with the current C3 implementation? Edit: I noticed "@require padding < 0xFF : "Invalid padding character"", and there is "encoding::INVALID_CHARACTER", so I presume we can handle some errors or invalid input gracefully. Although I prefer Odin's current implementation because you can handle specific errors, e.g. not just "invalid character", but invalid length (and others, see base32.odin for more). Any thoughts on this? Additionally, what are the differences between @require padding < 0xFF : "Invalid padding character" and @return? encoding::INVALID_PADDING, encoding::INVALID_CHARACTER exactly? If I want to handle invalid padding character, I would have to get rid of "@require"? Additionally, what if there are many more error cases? It would be a "long line" of available error cases? Could I use an enum of errors or something instead or something similar to https://github.com/odin-lang/Odin/blob/master/core/encoding/...? BTW I like programming by contract, but I am not sure that all error cases that Odin has could have a "@require", and I am not sure if I would like to mix them either, because what if I have a program where I want to handle even "padding < 0xFF" specifically (in terms of base32.c3), or let's say, I don't want it to fail when "padding < 0xFF". Would I really need to implement my own base32 encoding in that case, then, or what? --- Thank you for your time and help in advance!
In Show HN: The C3 programming language (C alternative language)
I highly recommend looking at: * The Overview: <https://odin-lang.org/docs/overview/> * examples/demo: <https://github.com/odin-lang/Odin/blob/master/examples/demo/...> As for the first example: a basic lexing example is probably boring, but it does show some basic ideas of what the language is about. If people want to write better examples or just reorder the current ones, please feel free to make an issue or PR on the website's GitHub page: <https://github.com/odin-lang/odin-lang.org>.
In Odin Programming Language
> A way to generate bindings automatically from C Headers or even better - not having to generate bindings separately and just import C headers directly. We do want to have an official bindings generator as part of the toolchain. There have been numerous third-party ones that people have created, but we need to have an official one now. However, automatically importing C headers is not actually what virtually anyone wants in practice. Once you have imported the C header file, you pretty much want to: * wrap the entire thing * change the types to better reflect what things are (using Odin's richer type system) * change names of things to better reflect usage and intent * reorganize the declarations to better read things * etc There is also the second issue that C is technically TWO languages: the C programming language and the C preprocess
Read the rest
or. People mix the two together and things cannot be easily translated. A good basic example of this is people using `#define` for constants, and thus that name has no semantic meaning in the language itself. A translator has to try and make some semantic meaning from the intersection of these two languages, even if people don't make a distinction when making APIs. And Odin's `foreign` system allows [1] for a lot of really nice things that most other languages cannot do so tersely. Here are two examples of demonstrating bindings of C libraries that feel as if they were native Odin libraries WITHOUT any wrappers: * https://github.com/floooh/sokol-odin/blob/main/sokol/gfx/gfx... (and the rest) * https://pkg.odin-lang.org/vendor/sdl2/ and https://github.com/odin-lang/Odin/tree/master/vendor/sdl2 > Better tooling and standard library improvements. Any concrete examples/ideas that you can give? --- [1] https://odin-lang.org/docs/overview/#foreign-system
In Odin Programming Language
> The ad-hominem isn't advancing your cause lol. There was no ad-hominem. OP pointed out your initial claim contrasts with the facts. > Rust defaults to the MSVC toolchain. Surely you knew that. (...) This reads like a non-sequitur. The claim you've replied to was that Odin had poor windows support, and OP pointed out that Rust also supported Windows without msvc toolchains. > You're the only one here complaining about MSVC. Sorry, you're clearly speaking while oblivious to the discussion. The message you've replied to includes a link to a ticket asking Odin to shed it's dependency on msvc. It's clearly titled "move away from msvc". https://github.com/odin-lang/Odin/discussions/2047 I believe you owe OP an apology.
In Ask HN: Programming without a build system?

Showing the 15 most recent of 32 sources. Enable JavaScript to search and browse every indexed mention.

MAKE YOURSELF AT HOME

A few shortcuts

/
Search the collection
?
Open this guide
Esc
Close dialogs and navigation

Your saved repositories and interests stay in this browser.