EVERYTHING XIAOMI
Get listed

nFPM

nFPM is a free Go tool for creating DEB, RPM, APK, IPK, Arch Linux, and MSIX packages.

Place
#10 of 29
Score
6.4
nFPM's website

What nFPM is

nFPM is a free Go tool for creating DEB, RPM, APK, IPK, Arch Linux, and MSIX packages. It can run as a command-line tool or be used as a Go library, and the project describes it as a single binary with no external runtime dependencies. Package definitions use a YAML configuration file that can specify metadata, files, dependencies, scripts, and format-specific overrides. Installation options include package managers, prebuilt archives, Docker, Go install, and building from source; documented package managers include Homebrew, Scoop, APT, Yum, Winget, and NPM. GoReleaser can use nFPM to generate and publish Linux packages and Windows MSIX packages. The project presents it as an option for users who want packaging in a simple binary or library without dependencies such as Ruby and tar. Its license is MIT, and the repository links to a security policy. The install guide says release artifacts are checksummed and the checksum is signed with cosign; Docker images are also signed. MSIX support is experimental, and symlinks are skipped in that format.

Good

  • Supports six package formats
  • Usable as a command-line tool or Go library
  • YAML can define package contents and scripts
  • Several installation routes are documented
  • Release artifacts and Docker images are signed

Watch out

  • MSIX support is experimental
  • Symlinks are skipped for MSIX

Who it suits

nFPM suits developers who need package creation from a Go command-line tool or library, especially those seeking a packaging tool without external runtime dependencies.

Verdict

nFPM offers package creation through a single binary or Go library, with configurable package contents and multiple installation options. Users targeting MSIX should account for its experimental status and skipped symlinks.

Plans and prices

From nFPM's own pricing page, checked 8 Oct 2026.

All about pricing
PlanPriceWhat it gives you
nFPMFreeNo paid plans or usage limits stated on the pages reviewed

The facts

Each one read from nFPM's own pages, with the date it was checked.

What it does

Artifact verification
The install guide says release artifacts are checksummed and the checksum is signed with cosign; Docker images are also signed with cosign.checked 8 Oct 2026
Configuration
Packages are defined with a YAML configuration file.checked 8 Oct 2026
Install options
The project documents installation through package managers, prebuilt archives, Docker, Go install, or building from source.checked 8 Oct 2026
Integrations
GoReleaser can use nFPM to generate and publish Linux packages and Windows MSIX packages.checked 8 Oct 2026
Intended use
The project presents nFPM as an alternative for users who want a simple binary or library without dependencies such as Ruby and tar.checked 8 Oct 2026
License
The repository identifies its license as MIT.checked 8 Oct 2026
MSIX limitation
The GoReleaser documentation describes MSIX support as experimental and says symlinks are skipped.checked 8 Oct 2026
Package contents
Configuration can specify package metadata, files, dependencies, scripts, and format-specific overrides.checked 8 Oct 2026
Purpose
nFPM is a Go tool for creating deb, rpm, apk, ipk, Arch Linux, and MSIX packages.checked 8 Oct 2026
Runtime
The project describes nFPM as a single binary with no external runtime dependencies.checked 8 Oct 2026
Security policy
The GitHub repository links to a security policy.checked 8 Oct 2026
Support
The repository directs users with questions or support needs to the GoReleaser community.checked 8 Oct 2026
Supported package managers
Documented installation options include Homebrew, Scoop, APT, Yum, Winget, and NPM.checked 8 Oct 2026
Ways to use
nFPM can be used as a command-line tool or as a Go library.checked 8 Oct 2026
The full review of nFPM

nFPM is a free Go tool for building Linux and Windows software packages from YAML, either through a command line or as a Go library. It suits developers who want several package formats without external runtime dependencies; MSIX is the notable caveat.

Overview

nFPM creates DEB, RPM, APK, IPK, Arch Linux, and MSIX packages from a YAML configuration. It is aimed at code-driven release workflows rather than graphical packaging: define the package in configuration, then use the same tool as a standalone binary or integrate it into Go code. That dependency-free runtime makes it a sensible choice for teams seeking to avoid tools such as Ruby and tar.

One configuration can cover metadata, files, dependencies, scripts, and format-specific overrides. This is useful when a release needs multiple package types, since shared definitions can coexist with target-specific adjustments. The trade-off is that package setup and maintenance remain the user's responsibility in YAML or code.

Key features

Multi-format packaging

Support for six package families makes nFPM relevant to projects distributing across several Linux systems and, with caveats, Windows. Format-specific overrides help accommodate differences between targets instead of forcing every package to share identical settings. MSIX support is experimental in GoReleaser's documentation, and symlinks are skipped, so Windows releases that depend on either should look elsewhere or treat this format cautiously.

CLI, Go library, and release integration

The command-line interface works for direct packaging, while the Go library offers a route to embed packaging in Go projects. GoReleaser can use nFPM to generate and publish Linux packages and Windows MSIX packages, making it a natural option for teams already using that release tool. The documented installation routes include package managers, prebuilt archives, Docker, Go install, and source builds; Homebrew, Scoop, APT, Yum, Winget, and NPM are among the package-manager choices.

Release artifacts are checksummed, with the checksum signed using cosign; Docker images are also cosign-signed. The repository links to a security policy and directs support questions to the GoReleaser community. These are useful release and support touchpoints, though users should expect a community channel rather than a separately described support service.

Pricing

nFPM: free. The free plan covers the packaging tool, and no paid plans or usage limits are stated. Its MIT license suits users who want an open-source option; there are no separate tiers or paid capabilities to weigh.

Platforms

nFPM is available for Linux, macOS, and Windows, and its directory platform coverage also includes web. Its output targets are DEB, RPM, APK, IPK, Arch Linux, and MSIX. The Go runtime is not an extra requirement for using the single binary, though Go is relevant if choosing the library or Go install route.

Who it's for

Choose nFPM if you maintain software releases in a command-line or Go-based workflow and want to produce multiple Linux package formats without relying on external runtime dependencies. It is less suited to users who want a visual installer builder, or to Windows packaging projects that require mature MSIX support or symlink preservation.

Pros and cons

  • Pro: A single binary without external runtime dependencies reduces setup overhead in build environments.
  • Pro: YAML covers metadata, files, dependencies, scripts, and format-specific overrides across six package families.
  • Pro: CLI and Go-library use give both release pipelines and Go applications a way to invoke packaging.
  • Con: Configuration-first packaging is a poor fit for users seeking a graphical workflow.
  • Con: Experimental MSIX support and skipped symlinks constrain some Windows release needs.

Alternatives

Software Packaging Tools is the broader category list for comparing packaging options.

  • Tauri Bundler is a free open-source Rust library for wrapping Rust executables in OS-specific app bundles, with platforms including Android and iOS; its public API stability is not strictly SemVer.
  • makeself is a free option for creating self-extracting archives for Unix-compatible systems.
  • Electron Forge is a free alternative for Linux, macOS, and Windows.
  • electron-builder is a free alternative for Linux, macOS, and Windows.
  • electron-packager is a free Node.js library and CLI for Linux, macOS, and Windows, and requires Node.js 22.12.0 or higher.
  • InstallAware offers a free Visual Studio edition for commercial use and also has a free trial; it requires Visual Studio.
  • IzPack is a free Apache License 2.0 alternative for Linux, macOS, Windows, and self-hosted environments.
  • NSIS is free for any use; generated Windows installers can be as large as 2GB.

Verdict

nFPM is a strong choice for developers who need several Linux package formats from a dependency-light CLI or Go library, especially when packaging belongs in an automated release workflow. Its free, MIT-licensed model keeps the choice straightforward. Look elsewhere if you need a graphical workflow or dependable MSIX behavior with symlink support.

Alternatives to nFPM

All alternatives
  1. 1

    Avidemux

    Free planOpen sourceWebLinuxmacOSWindows
    7.3Free plan
  2. 2Tauri Bundler logo

    Tauri Bundler

    Free planAndroidiOSLinuxmacOS
    7.2Free plan
  3. 3Advanced Installer logo

    Advanced Installer

    Free planWindows
    6.6From $399 a year
  4. 4WiX Toolset logo

    WiX Toolset

    Free planAPIExtensionWindows
    6.6From $6,500 a year
  5. 5

    CyberInstaller Suite

    Free planWindows
    6.5€39.90 one-time
  6. 6

    makeself

    Free planLinuxmacOSSelf-hostedWindows
    6.5Free plan