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

C library for the Public Suffix List. Version 0.23.1 via Homebrew; verified from local package data. Also installable with debian: sudo apt install libpsl-dev.

## 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

- 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/07190dc5ae9f35ae73866675fed6d95fe6e8d9fe22c9d7cdf85862cb2ed24a4c-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

- 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

- zypper (92%):

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

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

## Package facts

- **Package key:** brew:libpsl
- **Package manager:** Homebrew
- **Version:** 0.23.1
- **Source summary:** C library for the Public Suffix List
- **Homepage:** <https://rockdaboot.github.io/libpsl>
- **Repository:** <https://github.com/rockdaboot/libpsl>
- **Generated:** 2026-08-03T19:37:03+00:00

## Executables

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

## Install behavior

- Bottle: not available

## Freshness

- Page generated: 2026-08-03
- Package-manager version: 0.23.1
## 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

## 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.23.1-1.fc45: normalized package name match | Fedora Rawhide package metadata: libpsl from https://dl.fedoraproject.org/pub/fedora/linux/development/rawhide/Everything/x86_64/os/repodata/07190dc5ae9f35ae73866675fed6d95fe6e8d9fe22c9d7cdf85862cb2ed24a4c-primary.xml.zst | C library for the Publix Suffix List | https://rockdaboot.github.io/libpsl
- dnf - libpsl-devel - 0.23.1-1.fc45: 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/07190dc5ae9f35ae73866675fed6d95fe6e8d9fe22c9d7cdf85862cb2ed24a4c-primary.xml.zst | Development files for libpsl | https://rockdaboot.github.io/libpsl


## Combined YAML source

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