ancatrusca

ancatrusca

Sharing the latest BEAM There, Done That episode, which covers Zig and Zigler in more practical depth than I’ve seen in one place before.
Key things for the Elixir side of the community:
The BEAM allocator integration. Zigler uses the BEAM’s allocator by default. This means native memory is visible to Erlang’s VM monitoring, unlike raw C NIFs or Rustler NIFs that use their own allocators. In practice this makes native memory usage observable from your Elixir telemetry, which is a meaningful operational improvement.
The four scheduler modes. Normal, dirty CPU, dirty IO, and spawned thread - switchable per function with a single flag, no Zig code changes required. The episode walks through when to use each.
What Zig actually catches. Spatial memory safety: buffer overflows, out-of-bounds array accesses, null pointer dereferences are caught in safe release mode and produce panics rather than silent corruption. What it doesn’t catch: temporal memory safety (use-after-free). A Zigler NIF can still crash the node if you hit that class of bug.
The marshalling story. Zigler generates boxing/unboxing code at function boundaries automatically. Type mismatches produce clear argument errors rather than crashes. The function name is the same in Zig and Elixir with no name transformations, which helps a lot when searching across a mixed codebase.
Isaac also showed a live demo of the sigil syntax - ~Z"“” … “”" with use Zig - which is the cleanest interface to NIF code I’ve seen for Elixir.
Would be good to hear from anyone who’s shipped this in production.

Where Next? Top

Trending in Podcasts Top

PJUllrich
Announcing Macro Mayhem @gus and I have started a new podcast called Macro Mayhem! We cover Elixir news and general industry topics ever...
New
ancatrusca
Sharing the latest BEAM There, Done That episode. This one is genuinely historic - the people who built the JAM and early BEAM, telling t...
New
PJUllrich
Peter and Gus discuss the OTP emergency patches, Gleam Release, the Programming Nerves book update, and more on this week’s Macro Mayhem ...
New
ancatrusca
New BEAM There, Done That with Maxim Kharchenko, creator of Ling - not a BEAM fork, a clean Erlang VM implementation running on Xen with ...
New

Other Trending Topics Top

JesseHerrick
Hey, I’m Jesse and I’m the main contributor behind Dexter, a full-featured, lightning-fast Elixir LSP optimized for large codebases. It s...
New
jimsynz
Beam Bots (or just BB for short) is a framework for building fault-tolerant robotics applications in Elixir using familiar OTP patterns. ...
New
mcass19
ExRatatui lets you cook up rich terminal UIs in Elixir, powered by Rust’s ratatui via Rustler NIFs. Build interactive terminal applicatio...
New
Damirados
Hello everyone. After busy few months I am happy to announce v0.1.0 of Emerge & Solve. They are GUI (Emerge) and State management (S...
New
netoum
Corex is an accessible, unstyled UI component library for Phoenix that integrates Zag.js state machines using Vanilla JavaScript and Live...
New
ausimian
Emily is an Elixir library that runs Nx computations on Apple’s MLX. Install it as the default Nx backend and Nx, defn, Axon, Nx.Serving,...
New

We're in Beta

About us Mission Statement

Options

Thread Display Mode




Thread Preview

Skip Thread Previews