pkg.sopackage field notes

brew / rank 1060

Install yasm with Homebrew

Modular BSD reimplementation of NASM. Version 1.3.0 via Homebrew; verified 2026-06-27.

install

Additional install commands

macOS

Homebrewverified · 100%
brew install yasm

provider-native install command

overview

Package summary

Modular BSD reimplementation of NASM

Commands and aliases

  • vsyasm
  • yasm
  • ytasm

history

Project history and usage

Yasm is a modular assembler for x86 and AMD64 that began as a BSD-licensed rewrite of NASM. Its package-manager identity is unusually clear: it exists because build systems needed a portable NASM-like assembler that could emit the object formats, debug formats, and 64-bit code used by Unix, Windows, and macOS projects.

Project history

The Yasm manual says the project started in 2001 as a rewrite of the Netwide Assembler under the BSD license. Rather than being a drop-in clone only, Yasm was designed around modules for assembler syntaxes, object formats, debug formats, and instruction sets, which let it support NASM syntax while also adding GNU as syntax, AMD64 support, and multiple platform object formats.

Yasm's public GitHub repository describes itself as the mainline development tree and was created there in 2011, after the project had already been established through its own site and release tarballs. The current manual still presents the core command as yasm, with vsyasm for Visual Studio integration and ytasm as part of the toolkit.

Adoption history

Yasm became a common build dependency during the period when multimedia and codec projects leaned heavily on hand-written x86 assembly. FFmpeg's own development log records a later switch of the default x86 assembler from Yasm to NASM while preserving an option to use Yasm, which is a good marker of how central Yasm had been to that ecosystem.

Its adoption was strongest where projects wanted NASM-style source compatibility plus portable output: ELF for Unix, Mach-O for macOS, COFF/Win32/Win64 for Windows, and debug information for platform debuggers. That combination made it show up in package managers less as an end-user tool and more as the thing that quietly made optimized native packages build.

How it is used

Typical use is direct assembly of NASM- or GAS-style input into an object file, often from a larger configure or make build. Users select output formats with flags such as -f, target machines with -m, parser syntax with -p, and debug formats with -g.

In practical packaging, Yasm is important when a source tree contains x86 assembly tuned for codecs, emulators, runtimes, or low-level libraries. A build may not expose Yasm to the final user at all, but failure to find it can disable assembly optimizations or stop old release branches from building.

Why package nerds care

Yasm is package-nerd plumbing: a small command-line tool whose importance is measured by how many other packages used to need it. It is also a useful example of a compatibility tool that gained adoption by matching an existing language, NASM syntax, while being friendlier to license and portability requirements.

Its later displacement by newer NASM releases in some projects is part of the story. Package collections keep Yasm because old build systems still ask for it, while newer projects may prefer NASM; knowing which assembler a package wants can explain otherwise opaque native-build failures.

Timeline

  • 2001: Yasm begins as a BSD-licensed rewrite of NASM.
  • 2006-2009: The Yasm user manual documents the modular assembler architecture and supported syntaxes, formats, and debug outputs.
  • 2011: The yasm/yasm GitHub repository is created as the mainline development tree.
  • 2017: FFmpeg changes its default x86 assembler preference from Yasm to NASM while keeping Yasm selectable.

Related projects

  • NASM is the assembler whose syntax and role Yasm originally reimplemented.
  • GNU as is another supported syntax target in Yasm's parser model.
  • FFmpeg is a prominent downstream multimedia project whose build history reflects Yasm's adoption and later partial replacement by NASM.

security posture

Risk level: green

narrow executable package without higher-risk signals.

Risk classifier

green risk · low confidence · appliance

Why

  • narrow executable package without higher-risk signals

Signals

  • metadata:no-higher-risk-signals

Install behavior

  • No Homebrew bottle metadata was recorded.

Recommended review

Before unattended agent use, check whether the tool reads plaintext credentials, writes remote state, publishes artifacts, or shells out to plugins.

executables

Installed executables

CommandKindExposureNote
vsyasmexecutableindexed executableDiscovered from the local executable index.
yasmexecutableindexed executableDiscovered from the local executable index.
ytasmexecutableindexed executableDiscovered from the local executable index.

freshness

Version and freshness

These signals separate page generation age, package-manager activity, and upstream release comparison. Version lag is warned only when an evidence URL and comparable versions are present.

page generated2026-08-03
manager version1.3.0
manager updated2026-06-27
local dataunknown
upstreamnot available
latest detectednot detected
  • okNo freshness warnings were generated.

install metadata

Package metadata

Package keybrew:yasm
Version1.3.0
Package managerHomebrew
Homepagehttps://www.tortall.net/projects/yasm/manual/html/
Repositoryhttps://github.com/yasm/yasm
Last updated2026-06-27T18:33:31-04:00
Pulseupdated
Bottlenot recorded
Servicenone declared

source trail

Generated from repository data

This page is generated by av-web from the private package SQLite artifact built by scripts/generate-pkg-sqlite.py.

Used sources

  • Geiger risk classifier
  • Nucleus package database
  • curated package history
  • pkgdb category and tag curation