# Brainstorming

**URL:** https://ziggit.dev/c/brainstorming/9.md

[Latest](https://ziggit.dev/latest.md) · [Categories](https://ziggit.dev/categories.md) · [Tags](https://ziggit.dev/tags.md)

---

## [About the Brainstorming category](https://ziggit.dev/t/about-the-brainstorming-category/873)

<div class="topic-metadata">

**Author:** [@ziggit](https://ziggit.dev/u/ziggit)\
**Replies:** 0\
**Last updated:** [June 23, 2023, 12:47pm UTC](https://ziggit.dev/t/about-the-brainstorming-category/873 "2023-06-23T12:47:51Z")

</div>

A place to discuss ideas and informal proposals about anything Zig-related.

---

## [Crash on oom strategy](https://ziggit.dev/t/crash-on-oom-strategy/18194)

<div class="topic-metadata">

**Author:** [@ericlang](https://ziggit.dev/u/ericlang)\
**Replies:** 9\
**Last updated:** [November 4, 2026, 10:01am UTC](https://ziggit.dev/t/crash-on-oom-strategy/18194 "2026-11-04T10:01:24Z")

</div>

A program is (generally) unusable when it goes out of memory or some other lowlevel disaster happens. Would it make sense to crash these like this below? What are ways you people act on these? I am not talking about c…

---

## [Andrew wants to ban tabs again?](https://ziggit.dev/t/andrew-wants-to-ban-tabs-again/18064)

<div class="topic-metadata">

**Author:** [@IntegratedQuantum](https://ziggit.dev/u/IntegratedQuantum)\
**Replies:** 68\
**Last updated:** [November 4, 2026, 8:16am UTC](https://ziggit.dev/t/andrew-wants-to-ban-tabs-again/18064 "2026-11-04T08:16:14Z")

</div>

It all started a couple months ago when I found a // TODO delete hard tabs from the language in the code. I of course immediately filed a PR to remove it (I say that jokingly, the comment was placed in the stack unwindin…

---

## [Should unassigned labeled break in loops be a compile error?](https://ziggit.dev/t/should-unassigned-labeled-break-in-loops-be-a-compile-error/18196)

<div class="topic-metadata">

**Author:** [@Calder-Ty](https://ziggit.dev/u/Calder-Ty)\
**Replies:** 6\
**Last updated:** [November 4, 2026, 12:37am UTC](https://ziggit.dev/t/should-unassigned-labeled-break-in-loops-be-a-compile-error/18196 "2026-11-04T00:37:21Z")

</div>

I ran into this bit of footgun (?) today when writing a nested loop with a labeled break. When writing a loop there are two valid locations to write a label. One to label the loop, so that you can break out of nested loo…

---

## [Allow swallow in checkAllAllocationFailures?](https://ziggit.dev/t/allow-swallow-in-checkallallocationfailures/18187)

<div class="topic-metadata">

**Author:** [@dennypenta](https://ziggit.dev/u/dennypenta)\
**Replies:** 1\
**Last updated:** [November 2, 2026, 5:49pm UTC](https://ziggit.dev/t/allow-swallow-in-checkallallocationfailures/18187 "2026-11-02T17:49:02Z")

</div>

There is a very useful thing checkAllAllocationFailures. but it has a limitation: If my code ignores OOM and doesn’t proxy it up, it gives an error that OOM is swallowed. Apparently it is very easy to face such a case…

---

## [Assert\_safe alias for: if (std.debug.runtime\_safety)](https://ziggit.dev/t/assert-safe-alias-for-if-std-debug-runtime-safety/18155)

<div class="topic-metadata">

**Author:** [@jangorecki](https://ziggit.dev/u/jangorecki)\
**Replies:** 9\
**Last updated:** [November 1, 2026, 11:37pm UTC](https://ziggit.dev/t/assert-safe-alias-for-if-std-debug-runtime-safety/18155 "2026-11-01T23:37:02Z")

</div>

I would find it very useful. Rather than writing if (std.debug.runtime\_safety) assert(g \< self.first\_rows.len()); I would like to write assert\_safe(g \< self.first\_rows.len()); code is cleaner, easier to read. I am …

---

## [Halloween Challenge: Cursed Zig](https://ziggit.dev/t/halloween-challenge-cursed-zig/18153)

<div class="topic-metadata">

**Author:** [@Calder-Ty](https://ziggit.dev/u/Calder-Ty)\
**Replies:** 30\
**Last updated:** [November 1, 2026, 11:03pm UTC](https://ziggit.dev/t/halloween-challenge-cursed-zig/18153 "2026-11-01T23:03:40Z")

</div>

Happy Halloween! I thought it would be fun to have challenge to see what some of the most Cursed zig you’ve caught yourself writing. Why did you write it? Do you regret it, or was it the only way?

---

## [In need of Parquet Arrow Decompression](https://ziggit.dev/t/in-need-of-parquet-arrow-decompression/5568)

<div class="topic-metadata">

**Author:** [@AndrewCodeDev](https://ziggit.dev/u/AndrewCodeDev)\
**Replies:** 2\
**Last updated:** [November 1, 2026, 6:51am UTC](https://ziggit.dev/t/in-need-of-parquet-arrow-decompression/5568 "2026-11-01T06:51:08Z")

</div>

Howdy - it’s been a minute :slight\_smile: I am currently looking for a clean way to decompress non-encrypted parquet files in the arrow format within a Zig context. My use case is real time processing (files are not not…

---

## [Fool's errand - building the fastest numerical computation library](https://ziggit.dev/t/fools-errand-building-the-fastest-numerical-computation-library/17832)

<div class="topic-metadata">

**Author:** [@sfn](https://ziggit.dev/u/sfn)\
**Replies:** 12\
**Last updated:** [October 31, 2026, 1:07am UTC](https://ziggit.dev/t/fools-errand-building-the-fastest-numerical-computation-library/17832 "2026-10-31T01:07:54Z")

</div>

I may or may not end up figuring out how to write my own domain-specific high-performance physics simulators in the near future, but the possibility got me thinking about how to do the underlying calculations in the fast…

---

## [Slice range notation format](https://ziggit.dev/t/slice-range-notation-format/15299)

<div class="topic-metadata">

**Author:** [@uint](https://ziggit.dev/u/uint)\
**Replies:** 21\
**Last updated:** [October 28, 2026, 11:12am UTC](https://ziggit.dev/t/slice-range-notation-format/15299 "2026-10-28T11:12:42Z")

</div>

Preferred slice range notation format Allow specifying a start and an end index. For each start/end index: choose inclusive or exclusive. Only shrink-only range logic is allowed: No prefix → inclusive Prefix !…

---

## [What Should We \_Remove\_ from Zig?](https://ziggit.dev/t/what-should-we-remove-from-zig/17518)

<div class="topic-metadata">

**Author:** [@VoilaNeighbor](https://ziggit.dev/u/VoilaNeighbor)\
**Replies:** 165\
**Last updated:** [October 27, 2026, 1:25pm UTC](https://ziggit.dev/t/what-should-we-remove-from-zig/17518 "2026-10-27T13:25:24Z")

</div>

I love Zig very much, and I see a lot of posts on what is still missing. I appreciate so much for the aesthetic insistence (in a positive sense) on keeping Zig as a simple language, and the excellent balance of choosing …

---

## [What accepted proposal is everyone most excited about?](https://ziggit.dev/t/what-accepted-proposal-is-everyone-most-excited-about/15438)

<div class="topic-metadata">

**Author:** [@darnellbrawner](https://ziggit.dev/u/darnellbrawner)\
**Replies:** 15\
**Last updated:** [October 26, 2026, 5:48am UTC](https://ziggit.dev/t/what-accepted-proposal-is-everyone-most-excited-about/15438 "2026-10-26T05:48:47Z")

</div>

One wish thread was fun but theres a lot of stuff in the pipeline especially if u browse the GitHub pile. Look interesting to me making use of r32 , r64 when you don’t need deterministic behavior but speed .

---

## [Exploring the idea of a more modular alternative design to \`std.mem.Allocator\`](https://ziggit.dev/t/exploring-the-idea-of-a-more-modular-alternative-design-to-std-mem-allocator/17589)

<div class="topic-metadata">

**Author:** [@kirisoup](https://ziggit.dev/u/kirisoup)\
**Replies:** 40\
**Last updated:** [October 21, 2026, 10:44am UTC](https://ziggit.dev/t/exploring-the-idea-of-a-more-modular-alternative-design-to-std-mem-allocator/17589 "2026-10-21T10:44:31Z")

</div>

The thing that inspired this post: I remember reading a blog post from matklad (IIRC that is, I can’t find it unfortunately), which introduced me to the concept of using arena v.s. gpa to manage the lifetime of internal …

---

## ["{q}" prints strings nicely but what about a single character?](https://ziggit.dev/t/q-prints-strings-nicely-but-what-about-a-single-character/18033)

<div class="topic-metadata">

**Author:** [@truly-not-taken](https://ziggit.dev/u/truly-not-taken)\
**Replies:** 2\
**Last updated:** [October 20, 2026, 7:41am UTC](https://ziggit.dev/t/q-prints-strings-nicely-but-what-about-a-single-character/18033 "2026-10-20T07:41:40Z")

</div>

test "print u8 with {q}" { const expected: u8 = 'a'; const actual: u8 = '\\t'; // this does not compile // errdefer std.debug.print("expected {q}, found {q}\\n", .{ // expected, // actual, …

---

## [Looking for allocation heavy real world projects](https://ziggit.dev/t/looking-for-allocation-heavy-real-world-projects/18013)

<div class="topic-metadata">

**Author:** [@Nico792](https://ziggit.dev/u/Nico792)\
**Replies:** 0\
**Last updated:** [October 18, 2026, 1:25am UTC](https://ziggit.dev/t/looking-for-allocation-heavy-real-world-projects/18013 "2026-10-18T01:25:55Z")

</div>

Hi, I’ve been working on a new allocator for zig. My benchmarks are looking pretty good, but it’s not ready for prime time just yet. Before that I would like to throw the allocator into a bunch of real world projects to …

---

## [\`Io.Select.async\` semantics](https://ziggit.dev/t/io-select-async-semantics/17943)

<div class="topic-metadata">

**Author:** [@lalinsky](https://ziggit.dev/u/lalinsky)\
**Replies:** 4\
**Last updated:** [October 14, 2026, 6:44am UTC](https://ziggit.dev/t/io-select-async-semantics/17943 "2026-10-14T06:44:37Z")

</div>

I’ve been watching Andrew’s talk about cancellation in std.Io.Threaded, which is great and I’m glad more people will learn how it works. However, there was one snippet in the presentation, that is bothering me: var sel…

---

## [State of networking in \`std.Io\`](https://ziggit.dev/t/state-of-networking-in-std-io/16553)

<div class="topic-metadata">

**Author:** [@lalinsky](https://ziggit.dev/u/lalinsky)\
**Replies:** 44\
**Last updated:** [October 11, 2026, 3:57am UTC](https://ziggit.dev/t/state-of-networking-in-std-io/16553 "2026-10-11T03:57:20Z")

</div>

I’ve been writing about this in the past, but after the 0.16 release, things already got worse. The interface is missing several key features, that people are hacking around, tying to a particular std.Io implementation, …

---

## [Who’s ready (I AM) to break everything they built in 0.16?](https://ziggit.dev/t/who-s-ready-i-am-to-break-everything-they-built-in-0-16/17862)

<div class="topic-metadata">

**Author:** [@selectedambient](https://ziggit.dev/u/selectedambient)\
**Replies:** 17\
**Last updated:** [October 10, 2026, 5:01pm UTC](https://ziggit.dev/t/who-s-ready-i-am-to-break-everything-they-built-in-0-16/17862 "2026-10-10T17:01:45Z")

</div>

i UNIRONICALLY cannot wait to break my projects moving them to 0.17. this is not a dig on zig, this is just a fact of the matter when it comes to language that is still under 1.0. i’m happy to be building and breaking as…

---

## [A mean to attach methods to C structs](https://ziggit.dev/t/a-mean-to-attach-methods-to-c-structs/17892)

<div class="topic-metadata">

**Author:** [@chung-leong](https://ziggit.dev/u/chung-leong)\
**Replies:** 7\
**Last updated:** [October 9, 2026, 5:24pm UTC](https://ziggit.dev/t/a-mean-to-attach-methods-to-c-structs/17892 "2026-10-09T17:24:41Z")

</div>

I’m currently in middle of refactoring the API code that I used for my PHP extension. The initial version was very low effort. For text strings I have this in php.zig: pub const String = c.zend\_string; And associated f…

---

## [How we are going to sell Zig?](https://ziggit.dev/t/how-we-are-going-to-sell-zig/7069)

<div class="topic-metadata">

**Author:** [@g41797](https://ziggit.dev/u/g41797)\
**Replies:** 44\
**Last updated:** [October 9, 2026, 5:15pm UTC](https://ziggit.dev/t/how-we-are-going-to-sell-zig/7069 "2026-10-09T17:15:37Z")

</div>

A New Era for C and C++? Goodbye, Rust? raised my attention. There have already been several discussion on “safe” topic on the forum. They all concerned technical side. And this is mainly marketing issue, because Zig …

---

## [Stack allocated strings](https://ziggit.dev/t/stack-allocated-strings/17289)

<div class="topic-metadata">

**Author:** [@matklad](https://ziggit.dev/u/matklad)\
**Replies:** 26\
**Last updated:** [October 9, 2026, 1:23pm UTC](https://ziggit.dev/t/stack-allocated-strings/17289 "2026-10-09T13:23:20Z")

</div>

When coding various “scripty” things in Zig, I often need to format short strings. I hate using gpa for that purpose, as I always mess up freeing stuff, especially when there’s error handling involved. And, most of the …

---

## [Desired Features of ZLS/Build Server Protocol](https://ziggit.dev/t/desired-features-of-zls-build-server-protocol/17871)

<div class="topic-metadata">

**Author:** [@KilianHanich](https://ziggit.dev/u/KilianHanich)\
**Replies:** 11\
**Last updated:** [October 6, 2026, 3:09pm UTC](https://ziggit.dev/t/desired-features-of-zls-build-server-protocol/17871 "2026-10-06T15:09:58Z")

</div>

The LSP protocol definitely has a TypeScript/OOP bias in its design and rather hostile to languages rich in metaprogramming features, but as of now the protocol itself is kinda tangential to the problem. By no means I’m …

---

## [Proposal: remove continue-expression of while loops from the language](https://ziggit.dev/t/proposal-remove-continue-expression-of-while-loops-from-the-language/17856)

<div class="topic-metadata">

**Author:** [@WarumSoZickZack](https://ziggit.dev/u/WarumSoZickZack)\
**Replies:** 4\
**Last updated:** [October 6, 2026, 3:21am UTC](https://ziggit.dev/t/proposal-remove-continue-expression-of-while-loops-from-the-language/17856 "2026-10-06T03:21:53Z")

</div>

what about adding a new keyword ‘continuedefer’ (or maybe ‘loopdefer’, …) that defers a statement in a loop IFF the loop continues (explicitly with ‘continue’ or implicitly by reaching end of loop body). I think this w…

---

## [Footguns on stdlib renamings (\`containsAtLeastScalar\`)](https://ziggit.dev/t/footguns-on-stdlib-renamings-containsatleastscalar/17855)

<div class="topic-metadata">

**Author:** [@IntegratedQuantum](https://ziggit.dev/u/IntegratedQuantum)\
**Replies:** 5\
**Last updated:** [October 5, 2026, 10:50pm UTC](https://ziggit.dev/t/footguns-on-stdlib-renamings-containsatleastscalar/17855 "2026-10-05T22:50:38Z")

</div>

I just found a small footgun while working on updating my codebase to 0.17.0, and I thought I should make a post about it to save others from any trouble. Luckily, while doing the migration I decided to use search acros…

---

## [From a developer soon to retire](https://ziggit.dev/t/from-a-developer-soon-to-retire/17643)

<div class="topic-metadata">

**Author:** [@zelda-rageux](https://ziggit.dev/u/zelda-rageux)\
**Replies:** 77\
**Last updated:** [October 4, 2026, 10:47pm UTC](https://ziggit.dev/t/from-a-developer-soon-to-retire/17643 "2026-10-04T22:47:25Z")

</div>

(English is not my native language, this message is translated by Google, I apologize in advance if some of the translation doesn’t reflect what I mean.) I hesitated for a long time before writing this message. I’m 59 …

---

## [A declarative superset of Zig for Language Tools](https://ziggit.dev/t/a-declarative-superset-of-zig-for-language-tools/17821)

<div class="topic-metadata">

**Author:** [@resonancel](https://ziggit.dev/u/resonancel)\
**Replies:** 7\
**Last updated:** [October 4, 2026, 2:17am UTC](https://ziggit.dev/t/a-declarative-superset-of-zig-for-language-tools/17821 "2026-10-04T02:17:25Z")

</div>

Hear me out, I’m not advocating for adding declarative constraints or any type algebraic wizardry to the language, I’m rather interested in brainstorming and standardizing the notion for structural, declarative types com…

---

## [The future of ZLS and the compiler daemon](https://ziggit.dev/t/the-future-of-zls-and-the-compiler-daemon/17750)

<div class="topic-metadata">

**Author:** [@resonancel](https://ziggit.dev/u/resonancel)\
**Replies:** 7\
**Last updated:** [October 3, 2026, 7:57am UTC](https://ziggit.dev/t/the-future-of-zls-and-the-compiler-daemon/17750 "2026-10-03T07:57:49Z")

</div>

IIUC, Zig’s semantics are operational in nature and most probably not going to change in the coming future. I have no problem with that as the procedural, stateful nature of comptime has opened up lots of use cases. An i…

---

## [Moji: a small interface for generic rune handling in Zig](https://ziggit.dev/t/moji-a-small-interface-for-generic-rune-handling-in-zig/17811)

<div class="topic-metadata">

**Author:** [@nyx-xyn](https://ziggit.dev/u/nyx-xyn)\
**Replies:** 0\
**Last updated:** [October 3, 2026, 7:06am UTC](https://ziggit.dev/t/moji-a-small-interface-for-generic-rune-handling-in-zig/17811 "2026-10-03T07:06:25Z")

</div>

I have been working on a library called Bunsho and experimenting with ways to handle text parsing generically. Bunsho has an interface called Moji. The interface handles classification and transformation of individual r…

---

## [Coding style of initializing things](https://ziggit.dev/t/coding-style-of-initializing-things/17710)

<div class="topic-metadata">

**Author:** [@ericlang](https://ziggit.dev/u/ericlang)\
**Replies:** 10\
**Last updated:** [September 29, 2026, 9:52am UTC](https://ziggit.dev/t/coding-style-of-initializing-things/17710 "2026-09-29T09:52:03Z")

</div>

What do you like the best, regarding readability? var thing: Thing = .init(args); // this? var thing = Thing.init(args); // or this? This one seems to much to me: var thing: Thing = Thing.init(args); // too much. Ho…

---

## [Operating an a struct using self or not?](https://ziggit.dev/t/operating-an-a-struct-using-self-or-not/17698)

<div class="topic-metadata">

**Author:** [@ericlang](https://ziggit.dev/u/ericlang)\
**Replies:** 12\
**Last updated:** [September 28, 2026, 3:38am UTC](https://ziggit.dev/t/operating-an-a-struct-using-self-or-not/17698 "2026-09-28T03:38:51Z")

</div>

I am writing a little lemmings game. And walking into a design problem. Let me say I have a struct in side game.lemming.zig: const Lemming = struct { fn walk(self: \*Lemming) bool { // program against self…

[Next page](https://ziggit.dev/c/brainstorming/9.md?page=1)
