# Install zet with Homebrew, Nix

CLI utility to find the union, intersection, and set difference of files. Version 2.0.1 via Homebrew; verified 2026-07-10. Also installable with nix: nix profile install nixpkgs#zet.

## Install

```sh
sudo av install brew:zet
```

Additional install commands:

### macOS

- Homebrew (100%):

```sh
brew install zet
```

  Evidence: local Homebrew formula metadata

### Linux

- Nix (92%):

```sh
nix profile install nixpkgs#zet
```

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

## Package facts

- **Package key:** brew:zet
- **Package manager:** Homebrew
- **Version:** 2.0.1
- **Source summary:** CLI utility to find the union, intersection, and set difference of files
- **Homepage:** <https://github.com/yarrow/zet>
- **Repository:** <https://github.com/yarrow/zet>
- **Last updated:** 2026-07-10T09:35:13-04:00
- **Generated:** 2026-08-03T19:37:03+00:00

## Executables

- zet (alias)

## Install behavior

- Bottle: not available

## Freshness

- Page generated: 2026-08-03
- Package-manager version: 2.0.1
## Project history and usage

zet is a focused Rust command-line tool for treating files as sets of lines and computing union, intersection, difference, single-occurrence, and multiple-occurrence results while removing duplicates.

### Project history

The public trail is mostly the repository and a July 2021 Rust Users Forum announcement. The author positioned zet as a small Unix-style utility comparable to uniq and comm, but aimed at direct set operations over whole files rather than sorted-stream workflows.

### How it is used

Users run commands such as zet union, zet intersect, and zet diff over two or more input files. The README emphasizes that output preserves the order in which lines first appear, while the forum announcement notes details such as UTF-16 handling, BOM behavior, line-ending normalization, and memory use proportional to the largest argument plus output.

### Why package nerds care

zet is a nice package-catalog specimen because it fills a tiny gap left by classic POSIX text tools: set algebra over lines without forcing the user to pre-sort files or compose a longer shell pipeline.

### Timeline

- 2021-07-05: zet is announced on the Rust Users Forum as a CLI for set operations on files considered as sets of lines.

### Related projects

- uniq and comm are the traditional Unix comparison points named by the project README.
- setutils is a broader family of command-line set-operation utilities in a similar niche.

### Sources

- <https://github.com/yarrow/zet>
- <https://users.rust-lang.org/t/zet-take-the-union-intersection-etc-of-files/61952>


## Security Notes

narrow executable package without higher-risk signals.

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

## Other Package-Manager Records

- Nix - zet: normalized package name match | nixpkgs package indexes: pkgs/by-name/ze/zet/package.nix from https://api.github.com/repos/NixOS/nixpkgs/git/trees/master?recursive=1


## Combined YAML source

View the package source record on GitHub. [combined/zet.yml](https://github.com/mxcl/pkgdb/blob/main/combined/zet.yml)


## Sources

- pkg.so package database
- Geiger risk classifier
- curated package history
- pkgdb category and tag curation
- external package-manager database matches
- cross-ecosystem install command graph
