# Install libpsl with Homebrew, apk, apt, dnf, MacPorts, Nix, pacman, zypper

C library for the Public Suffix List. Version 0.22.0 via Homebrew; verified 2026-06-25.

## Install

```sh
sudo av install brew:libpsl
```

Additional install commands:

### macOS

- Homebrew (100%):

```sh
brew install libpsl
```

  Evidence: local Homebrew formula metadata

- MacPorts (94%):

```sh
sudo port install libpsl
```

  Evidence: MacPorts ports tree: net/libpsl/Portfile from https://api.github.com/repos/macports/macports-ports/git/trees/master?recursive=1

### Linux

- apk (92%):

```sh
sudo apk add libpsl
```

  Evidence: Alpine Linux edge package indexes: libpsl from https://dl-cdn.alpinelinux.org/alpine/edge/main/x86_64/APKINDEX.tar.gz

- Debian apt (92%):

```sh
sudo apt install libpsl-dev
```

  Evidence: Debian stable package indexes: libpsl-dev from https://deb.debian.org/debian/dists/stable/main/binary-amd64/Packages.xz

- dnf (92%):

```sh
sudo dnf install libpsl
```

  Evidence: Fedora Rawhide package metadata: libpsl from https://dl.fedoraproject.org/pub/fedora/linux/development/rawhide/Everything/x86_64/os/repodata/e5ca8ce900cd68f5419e1c39ae517343100b306336cbaeb70a3c153121d95094-primary.xml.zst

- Nix (92%):

```sh
nix profile install nixpkgs#libpsl
```

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

- pacman (92%):

```sh
sudo pacman -S libpsl
```

  Evidence: Arch Linux sync databases: libpsl from https://geo.mirror.pkgbuild.com/core/os/x86_64/core.db.tar.gz

- zypper (92%):

```sh
sudo zypper install libpsl-devel
```

  Evidence: openSUSE Tumbleweed package metadata: libpsl-devel from https://download.opensuse.org/tumbleweed/repo/oss/repodata/be8d3611d25469107f32075a1697e69ec57a2b850b42348a658cc671ad5ec2b50760d02c3e59524d50da9a11d5be799bdaffba2e166e8ca8858512e3c0bd665d-primary.xml.zst

## Package facts

- **Package key:** brew:libpsl
- **Package manager:** Homebrew
- **Package manager page:** <https://formulae.brew.sh/formula/libpsl>
- **Version:** 0.22.0
- **Source summary:** C library for the Public Suffix List
- **Homepage:** <https://rockdaboot.github.io/libpsl>
- **Repository:** <https://github.com/rockdaboot/libpsl>
- **Upstream docs:** <https://rockdaboot.github.io/libpsl>
- **License:** MIT
- **Source archive:** <https://github.com/rockdaboot/libpsl/releases/download/0.22.0/libpsl-0.22.0.tar.gz>
- **Last updated:** 2026-06-25T00:40:45Z
- **Generated:** 2026-07-08T07:18:31+00:00

## Executables

- psl (cli)
- psl-make-dafsa (cli)
- psl (alias)
- psl-make-dafsa (alias)

## Build dependencies

- pkgconf

## 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.22.0
- Package-manager updated: 2026-06-25
- Local data: ok
- Upstream repository: https://github.com/rockdaboot/libpsl
- info: No cached GitHub release or tag data was available.
## Project history and usage

libpsl is a C library for working with the Public Suffix List, the shared list used to decide where registrable domain boundaries sit. It gives native programs a fast way to answer questions that matter for cookies, certificates, domain display, and site grouping.

### Project history

The library was created by Tim Ruehsen from libmget cookie code on 2014-03-19, according to the source changelog, and the public GitHub repository was created on 2014-03-20. The README describes libpsl as a C library that handles the Public Suffix List with built-in PSL data, file-loaded PSL data, DAFSA compression, thread safety, and IDNA support.

The Public Suffix List itself is a cross-vendor initiative maintained by Mozilla volunteers and registry submissions. libpsl packages that ecosystem for C consumers rather than trying to define suffix policy itself.

### Adoption history

libpsl's adoption comes from web-client and network-client needs: software must avoid supercookies, reject overbroad certificate or domain assumptions, and group sites by registrable domain. The Public Suffix List page names browsers, Qt, crawler libraries, certificate-authority workflows, and security tooling as users of PSL data.

Package managers carry libpsl because many lower-level network tools need PSL behavior without embedding their own parser. Homebrew, Debian-family systems, Fedora, MacPorts, Nix, Arch, Alpine, and openSUSE all appear in the package metadata for this batch.

### How it is used

Developers use libpsl through the C API to test whether a domain is a public suffix, verify cookie-domain acceptability, find public or private domain portions, or load updated PSL data. The package also ships the `psl` command and `psl-make-dafsa` for command-line inspection and compressed list generation.

### Why package nerds care

libpsl is package-nerd significant because it is tiny infrastructure with security consequences. A stale or missing PSL layer can allow cookie scoping mistakes or bad domain-boundary assumptions, while a shared library lets distributions update the logic and data path centrally.

Its build and packaging details are also unusually nerdy: the README separates libpsl releases from PSL data updates, supports both autotools and Meson, and uses DAFSA compression to shrink lookup data for fast native access.

### Timeline

- 2014-03-19: Source changelog says Tim Ruehsen created the library from libmget cookie code.
- 2014-03-20: The public GitHub repository was created.
- 2016-01-02: Release 0.12.0 appears in GitHub release metadata.
- 2019-04-16: Release 0.21.0 was published.
- 2026-06-24: Release 0.22.0 included portability, build, Windows, Apple ICU, and tarball-build improvements.

### Related projects

- The Public Suffix List, Mozilla's PSL maintenance process, Chromium's DAFSA code, GNU Wget/libmget history, curl-like clients, browsers, crawler libraries, and certificate-authority tooling are the related ecosystem.

### Sources

- <https://api.github.com/repos/rockdaboot/libpsl>
- <https://api.github.com/repos/rockdaboot/libpsl/releases>
- <https://formulae.brew.sh/formula/libpsl>
- <https://github.com/publicsuffix/list>
- <https://github.com/rockdaboot/libpsl>
- <https://publicsuffix.org/learn/>
- <https://raw.githubusercontent.com/rockdaboot/libpsl/master/README.md>
- <https://raw.githubusercontent.com/rockdaboot/libpsl/master/src/psl.c>


## Security Notes

library-like package without higher-risk signals.

- **Geiger risk:** green / low
- library-like package without higher-risk signals

## Source Database Details

- **Source Database:** Homebrew formula API
- **Tap:** homebrew/core
- **Full Name:** libpsl
- **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

- Debian apt - libpsl-dev - 0.21.2-1.1+b1: normalized package name match | Debian stable package indexes: libpsl-dev from https://deb.debian.org/debian/dists/stable/main/binary-amd64/Packages.xz | Library for Public Suffix List (development headers) | https://github.com/rockdaboot/libpsl
- Debian apt - libpsl5t64 - 0.21.2-1.1+b1: normalized package name match | Debian stable package indexes: libpsl5t64 from https://deb.debian.org/debian/dists/stable/main/binary-amd64/Packages.xz | Library for Public Suffix List (shared libraries) | https://github.com/rockdaboot/libpsl
- Debian apt - psl - 0.21.2-1.1+b1: normalized package name match | Debian stable package indexes: psl from https://deb.debian.org/debian/dists/stable/main/binary-amd64/Packages.xz | Explore the Public Suffix List | https://github.com/rockdaboot/libpsl
- Debian apt - psl-make-dafsa - 0.21.2-1.1: normalized package name match | Debian stable package indexes: psl-make-dafsa from https://deb.debian.org/debian/dists/stable/main/binary-amd64/Packages.xz | Create a binary DAFSA from a Public Suffix List | https://github.com/rockdaboot/libpsl
- Nix - libpsl: normalized package name match | nixpkgs package indexes: pkgs/by-name/li/libpsl/package.nix from https://api.github.com/repos/NixOS/nixpkgs/git/trees/master?recursive=1
- Ubuntu apt - libpsl-dev - 0.21.2-1.1build1: normalized package name match | Ubuntu 24.04 LTS package indexes: libpsl-dev from https://archive.ubuntu.com/ubuntu/dists/noble/main/binary-amd64/Packages.gz | Library for Public Suffix List (development headers) | https://github.com/rockdaboot/libpsl
- Ubuntu apt - libpsl5t64 - 0.21.2-1.1build1: normalized package name match | Ubuntu 24.04 LTS package indexes: libpsl5t64 from https://archive.ubuntu.com/ubuntu/dists/noble/main/binary-amd64/Packages.gz | Library for Public Suffix List (shared libraries) | https://github.com/rockdaboot/libpsl
- Ubuntu apt - psl - 0.21.2-1.1build1: normalized package name match | Ubuntu 24.04 LTS package indexes: psl from https://archive.ubuntu.com/ubuntu/dists/noble/universe/binary-amd64/Packages.gz | Explore the Public Suffix List | https://github.com/rockdaboot/libpsl
- Ubuntu apt - psl-make-dafsa - 0.21.2-1.1build1: normalized package name match | Ubuntu 24.04 LTS package indexes: psl-make-dafsa from https://archive.ubuntu.com/ubuntu/dists/noble/universe/binary-amd64/Packages.gz | Create a binary DAFSA from a Public Suffix List | https://github.com/rockdaboot/libpsl
- apk - libpsl - 0.21.5-r3: normalized package name match | Alpine Linux edge package indexes: libpsl from https://dl-cdn.alpinelinux.org/alpine/edge/main/x86_64/APKINDEX.tar.gz | C library for the Publix Suffix List | https://rockdaboot.github.io/libpsl
- apk - libpsl-dev - 0.21.5-r3: normalized package name match | Alpine Linux edge package indexes: libpsl-dev from https://dl-cdn.alpinelinux.org/alpine/edge/main/x86_64/APKINDEX.tar.gz | C library for the Publix Suffix List (development files) | https://rockdaboot.github.io/libpsl
- apk - libpsl-doc - 0.21.5-r3: normalized package name match | Alpine Linux edge package indexes: libpsl-doc from https://dl-cdn.alpinelinux.org/alpine/edge/main/x86_64/APKINDEX.tar.gz | C library for the Publix Suffix List (documentation) | https://rockdaboot.github.io/libpsl
- apk - libpsl-static - 0.21.5-r3: normalized package name match | Alpine Linux edge package indexes: libpsl-static from https://dl-cdn.alpinelinux.org/alpine/edge/main/x86_64/APKINDEX.tar.gz | C library for the Publix Suffix List (static library) | https://rockdaboot.github.io/libpsl
- apk - libpsl-utils - 0.21.5-r3: normalized package name match | Alpine Linux edge package indexes: libpsl-utils from https://dl-cdn.alpinelinux.org/alpine/edge/main/x86_64/APKINDEX.tar.gz | C library for the Publix Suffix List (utils) | https://rockdaboot.github.io/libpsl
- dnf - libpsl - 0.21.5-7.fc44: normalized package name match | Fedora Rawhide package metadata: libpsl from https://dl.fedoraproject.org/pub/fedora/linux/development/rawhide/Everything/x86_64/os/repodata/e5ca8ce900cd68f5419e1c39ae517343100b306336cbaeb70a3c153121d95094-primary.xml.zst | C library for the Publix Suffix List | https://rockdaboot.github.io/libpsl
- dnf - libpsl-devel - 0.21.5-7.fc44: normalized package name match | Fedora Rawhide package metadata: libpsl-devel from https://dl.fedoraproject.org/pub/fedora/linux/development/rawhide/Everything/x86_64/os/repodata/e5ca8ce900cd68f5419e1c39ae517343100b306336cbaeb70a3c153121d95094-primary.xml.zst | Development files for libpsl | https://rockdaboot.github.io/libpsl


## 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.
- [Networking and protocol packages](https://www.automicvault.com/pkg/networking-protocol-tools/) - Matched network, protocol, or remote-service metadata.
- [Web development packages](https://www.automicvault.com/pkg/web-dev-tools/) - Matched web development metadata.
- [pkgconf](https://www.automicvault.com/pkg/brew/pkgconf/) - Build dependency declared by Homebrew.
- [curl](https://www.automicvault.com/pkg/brew/curl/) - Popular package that depends on this formula.
- [transmission-cli](https://www.automicvault.com/pkg/brew/transmission-cli/) - Popular package that depends on this formula.
- [wget](https://www.automicvault.com/pkg/brew/wget/) - Popular package that depends on this formula.
- [wget2](https://www.automicvault.com/pkg/brew/wget2/) - Popular package that depends on this formula.
- [httrack](https://www.automicvault.com/pkg/brew/httrack/) - Shares av.db curated category or tags: cli, networking, web.
- [gensio](https://www.automicvault.com/pkg/brew/gensio/) - Shares av.db curated category or tags: c-library, cli, networking.
- [getdns](https://www.automicvault.com/pkg/brew/getdns/) - Shares av.db curated category or tags: c-library, cli, networking.
- [gsasl](https://www.automicvault.com/pkg/brew/gsasl/) - Shares av.db curated category or tags: c-library, cli, networking.
- [ldns](https://www.automicvault.com/pkg/brew/ldns/) - Shares av.db curated category or tags: c-library, cli, networking.
- [libdnet](https://www.automicvault.com/pkg/brew/libdnet/) - Shares av.db curated category or tags: c-library, cli, networking.
- [libexosip](https://www.automicvault.com/pkg/brew/libexosip/) - Shares av.db curated category or tags: c-library, cli, networking.
- [libfabric](https://www.automicvault.com/pkg/brew/libfabric/) - Shares av.db curated category or tags: c-library, cli, networking.
- [libnl](https://www.automicvault.com/pkg/brew/libnl/) - Local package facts share a topical domain. Shared terms: c-library, cli, list, networking.

## Combined YAML source

View the package source record on GitHub. [combined/libpsl.yml](https://github.com/automic-vault/db/blob/main/combined/libpsl.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
