# Install flip-link with Homebrew, Nix, pacman

Adds zero-cost stack overflow protection to your embedded programs. Version 0.1.12 via Homebrew; verified from local package data.

## Install

```sh
sudo av install brew:flip-link
```

Additional install commands:

### macOS

- Homebrew (100%):

```sh
brew install flip-link
```

  Evidence: local Homebrew formula metadata

### Linux

- Nix (92%):

```sh
nix profile install nixpkgs#flip-link
```

  Evidence: nixpkgs package indexes: pkgs/by-name/fl/flip-link/package.nix from https://api.github.com/repos/NixOS/nixpkgs/git/trees/master?recursive=1

- pacman (92%):

```sh
sudo pacman -S flip-link
```

  Evidence: Arch Linux sync databases: flip-link from https://geo.mirror.pkgbuild.com/extra/os/x86_64/extra.db.tar.gz

## Package facts

- **Package key:** brew:flip-link
- **Package manager:** Homebrew
- **Package manager page:** <https://formulae.brew.sh/formula/flip-link>
- **Version:** 0.1.12
- **Source summary:** Adds zero-cost stack overflow protection to your embedded programs
- **Homepage:** <https://github.com/knurling-rs/flip-link>
- **Repository:** <https://github.com/knurling-rs/flip-link>
- **Upstream docs:** <https://github.com/knurling-rs/flip-link#readme>
- **License:** Apache-2.0 OR MIT
- **Source archive:** <https://github.com/knurling-rs/flip-link/archive/refs/tags/v0.1.12.tar.gz>
- **Generated:** 2026-07-08T07:18:31+00:00

## Executables

- flip-link (cli)
- flip-link (alias)

## Build dependencies

- rust

## Install behavior

- Post-install hook: not defined
- Bottle: available on arm64_linux, arm64_sequoia, arm64_sonoma, arm64_tahoe, sonoma, x86_64_linux

## Freshness

- Page generated: 2026-07-08
- Package-manager version: 0.1.12
- Local data: ok
- Upstream repository: https://github.com/knurling-rs/flip-link
- Upstream latest detected: v0.1.12 (current)
- info: No package-manager update timestamp was available.
## Project history and usage

flip-link is a Rust linker wrapper from the Knurling embedded tooling project. It adds zero-cost stack overflow protection to bare-metal embedded Rust programs by flipping the memory layout used for ARM Cortex-M targets.

### Project history

The README explains the motivating bug class: stack overflows in bare-metal Cortex-M Rust programs can collide with .bss and .data static variables, causing undefined behavior even in code without unsafe blocks.

flip-link changes the link layout so the stack grows toward the physical RAM boundary instead of into static data. A stack overflow then becomes a hardware exception handled through the Cortex-M runtime rather than silent memory corruption.

### Adoption history

The README documents installation from crates.io with cargo install flip-link and configuration through .cargo/config.toml, making it a drop-in build-tool package for embedded Rust projects.

The input package metadata records packaging in Homebrew, Nix, and Arch, showing adoption outside Cargo for users who install embedded toolchain helpers through system package managers.

### How it is used

Users set the target linker to flip-link for bare-metal ARM targets, replacing rust-lld in Cargo configuration. flip-link invokes the Rust toolchain linker after adjusting the memory layout.

The official docs note support for ARM Cortex-M programs using cortex-m-rt 0.6.x and 0.7.x with LLD, with other architectures and runtime crates outside the tested scope.

### Why package nerds care

flip-link is significant because it packages a linker-level safety trick as a small CLI rather than requiring every embedded project to maintain custom linker scripts.

For Rust package maintainers, it is also a clear example of tooling that belongs in the build environment: the binary is tiny, target-specific, and wired through Cargo configuration rather than imported as a normal runtime library.

### Timeline

- 2020: v0.1.0 was released.
- 2021: v0.1.3 improved documentation and project checks around the stack overflow problem and solution.
- 2022: v0.1.6 updated the project to Rust 2021 and improved memory.x handling.
- 2024: v0.1.9 recommended target linker configuration for recent Cargo versions.
- 2025: v0.1.10 added help behavior and a fuller parser for ORIGIN and LENGTH expressions.

### Related projects

- flip-link is part of Knurling, Ferrous Systems' embedded Rust tooling effort.
- It is closely related to cortex-m-rt, rust-lld, Cargo target configuration, and ARM Cortex-M bare-metal Rust applications.

### Sources

- <https://crates.io/crates/flip-link>
- <https://github.com/knurling-rs/flip-link>
- <https://github.com/knurling-rs/flip-link/blob/main/CHANGELOG.md>


## Security Notes

narrow executable package without higher-risk signals.

- **Geiger risk:** green / low
- narrow executable package without higher-risk signals

## Source Database Details

- **Source Database:** Homebrew formula API
- **Tap:** homebrew/core
- **Full Name:** flip-link
- **Version Scheme:** 0
- **Revision:** 0
- **Bottle Stable Root URL:** <https://ghcr.io/v2/homebrew/core>
- **Deprecated:** no
- **Disabled:** no
- **Keg Only:** no
- **URL Keys:** stable

## Other Package-Manager Records

- Nix - flip-link: normalized package name match | nixpkgs package indexes: pkgs/by-name/fl/flip-link/package.nix from https://api.github.com/repos/NixOS/nixpkgs/git/trees/master?recursive=1
- pacman - flip-link - 0.1.12-2: normalized package name match | Arch Linux sync databases: flip-link from https://geo.mirror.pkgbuild.com/extra/os/x86_64/extra.db.tar.gz | Flips the memory layout of embedded programs to protect against stack overflows | https://github.com/knurling-rs/flip-link


## Related links

- [Source-control packages](https://www.automicvault.com/pkg/source-control-tools/) - Belongs to a source-control command family.
- [Terminal utility packages](https://www.automicvault.com/pkg/terminal-utilities/) - Matched terminal and command-line workflow metadata.
- [Language runtime packages](https://www.automicvault.com/pkg/language-runtime-packages/) - Matched language runtime, compiler, or interpreter metadata.
- [Networking and protocol packages](https://www.automicvault.com/pkg/networking-protocol-tools/) - Matched network, protocol, or remote-service metadata.
- [rust](https://www.automicvault.com/pkg/brew/rust/) - Build dependency declared by Homebrew.
- [bootloadhid](https://www.automicvault.com/pkg/brew/bootloadhid/) - Shares av.db curated category or tags: cli, embedded, system.
- [dfu-programmer](https://www.automicvault.com/pkg/brew/dfu-programmer/) - Shares av.db curated category or tags: cli, embedded, system.
- [dfu-util](https://www.automicvault.com/pkg/brew/dfu-util/) - Shares av.db curated category or tags: cli, embedded, system.
- [rpiboot](https://www.automicvault.com/pkg/brew/rpiboot/) - Shares av.db curated category or tags: cli, embedded, system.
- [bootterm](https://www.automicvault.com/pkg/brew/bootterm/) - Shares av.db curated category or tags: cli, embedded, system.
- [bottom](https://www.automicvault.com/pkg/brew/bottom/) - Shares av.db curated category or tags: cli, rust, system.
- [brush](https://www.automicvault.com/pkg/brew/brush/) - Shares av.db curated category or tags: cli, rust, system.
- [comtrya](https://www.automicvault.com/pkg/brew/comtrya/) - Shares av.db curated category or tags: cli, rust, system.
- [lolcrab](https://www.automicvault.com/pkg/brew/lolcrab/) - Both packages touch the same language runtime or ecosystem. Shared terms: cli, rust, system, your.

## Combined YAML source

View the package source record on GitHub. [combined/flip-link.yml](https://github.com/automic-vault/db/blob/main/combined/flip-link.yml)


## Sources

- Nucleus package database
- Geiger risk classifier
- package-page enrichment
- curated package history
- package version freshness
- av.db category and tag curation
- package relationship graph
- external package-manager database matches
- cross-ecosystem install command graph
