explaingit

allyourcodebase/nasm

Analysis updated 2026-05-18

18ZigAudience · developerComplexity · 2/5LicenseSetup · easy

TLDR

A Zig package that lets you pull the NASM x86 assembler into your Zig project as a build dependency.

Mindmap

mindmap
  root((nasm for Zig))
    What it does
      Packages NASM
      Adds Zig build
      Optional ndisasm
    Tech stack
      Zig
      NASM
    Use cases
      Add NASM as dependency
      Build ndisasm too
      Track clean upstream source
    Audience
      Zig developers

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

What do people build with it?

USE CASE 1

Add the NASM assembler as a dependency to a Zig project's build.

USE CASE 2

Also build ndisasm alongside NASM if you need to disassemble machine code.

USE CASE 3

Track an unmodified upstream NASM source packaged with a Zig build configuration.

What is it built with?

ZigNASM

How does it compare?

allyourcodebase/nasmatasoya/carbonaraal3rez/zehn
Stars181915
LanguageZigZigZig
Setup difficultyeasyeasymoderate
Complexity2/52/52/5
Audiencedeveloperdeveloperdeveloper

Figures from each repo's GitHub metadata at analysis time.

How do you get it running?

Difficulty · easy Time to first run · 5min

Requires an existing Zig project set up to consume it as a package dependency.

Use freely for any purpose, including commercial use, as long as you keep the copyright notice.

In plain English

This repository packages NASM, the Netwide Assembler, so it can be built and used through the Zig build system. NASM itself is a well known assembler for x86 and x86-64 machine code, and this project does not change what NASM does, it just makes it easy to pull into a Zig based project as a dependency. By default, building this package gives you the nasm command line tool. There is also an option to enable ndisasm, a companion disassembler tool that comes bundled with NASM, if you need it. The README notes that an earlier version of this repository worked differently: it forked NASM's source code and replaced its build system entirely with Zig's. That approach has been dropped in favor of pulling in the original, unmodified NASM source and only adding a Zig build configuration around it, keeping the actual NASM code clean and up to date with upstream. The old approach is preserved in a separate branch for anyone who needs to reference it, and the README points to the project's issue tracker for more background on why the change was made. Beyond that, the README is minimal. It does not describe build commands or usage examples beyond noting it is a Zig package, since the expectation is that users already familiar with Zig's package manager will add it as a dependency in their own project. The project is released under the MIT License.

Copy-paste prompts

Prompt 1
Show me how to add this NASM Zig package as a dependency in my build.zig.zon.
Prompt 2
How do I enable the ndisasm binary option when building this package?
Prompt 3
Explain why this repo switched from forking NASM's build system to wrapping the original source with Zig.

Frequently asked questions

What is nasm?

A Zig package that lets you pull the NASM x86 assembler into your Zig project as a build dependency.

What language is nasm written in?

Mainly Zig. The stack also includes Zig, NASM.

What license does nasm use?

Use freely for any purpose, including commercial use, as long as you keep the copyright notice.

How hard is nasm to set up?

Setup difficulty is rated easy, with roughly 5min to a first successful run.

Who is nasm for?

Mainly developer.

Open on GitHub → Explain another repo

This repo across BitVibe Labs

Verify against the repo before relying on details.