# Install yaws with Homebrew, apt, MacPorts, Nix

Webserver for dynamic content (written in Erlang). Version 2.3.1 via Homebrew; verified 2026-06-25.

## Install

```sh
sudo av install brew:yaws
```

Additional install commands:

### macOS

- Homebrew (100%):

```sh
brew install yaws
```

  Evidence: local Homebrew formula metadata

- MacPorts (94%):

```sh
sudo port install yaws
```

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

### Linux

- Debian apt (92%):

```sh
sudo apt install erlang-yapp
```

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

- Nix (92%):

```sh
nix profile install nixpkgs#yaws
```

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

## Package facts

- **Package key:** brew:yaws
- **Package manager:** Homebrew
- **Package manager page:** <https://formulae.brew.sh/formula/yaws>
- **Version:** 2.3.1
- **Source summary:** Webserver for dynamic content (written in Erlang)
- **Homepage:** <https://erlyaws.github.io/>
- **Repository:** <https://github.com/erlyaws/yaws>
- **Upstream docs:** <https://erlyaws.github.io/>
- **License:** BSD-3-Clause
- **Source archive:** <https://github.com/erlyaws/yaws/archive/refs/tags/yaws-2.3.1.tar.gz>
- **Last updated:** 2026-06-25T13:38:13+02:00
- **Generated:** 2026-07-08T07:18:31+00:00

## Executables

- yaws (cli)
- yaws (alias)

## Dependencies

- erlang

## Build dependencies

- autoconf
- automake
- libtool

## 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: 2.3.1
- Package-manager updated: 2026-06-25
- Local data: ok
- Upstream repository: https://github.com/erlyaws/yaws
- Upstream latest detected: yaws-2.3.1 (current)
## Project history and usage

Yaws, Yet Another Web Server, is an Erlang HTTP server created by Claes Wikstrom. It is historically important because it made Erlang's lightweight-process concurrency visible to web developers: one Erlang process per client, dynamic Erlang code in pages, standalone or embedded operation, and a long-running niche as an Erlang-native web server.

### Project history

Contemporary articles place Yaws' origin around 2001 as Claes 'Klacke' Wikstrom's project. The official site describes it as a high-performance HTTP/1.1 web server written entirely in Erlang, supporting both standalone daemon mode and embedded mode inside another Erlang application.

The documentation presents Yaws as both a static web server and a dynamic-content system. Pages ending in .yaws can contain embedded Erlang snippets, and the manual describes appmods, streaming, sessions, FastCGI, reverse proxying, WebSockets, long polling, and embedded mode as part of the server's feature set.

The project moved to a public GitHub repository early in GitHub's history; the GitHub API records the erlyaws/yaws repository as created in 2009. The official site now points users to GitHub for source code, releases, tests, and current activity.

### Adoption history

Yaws gained attention in the early Erlang web community because it turned Erlang's concurrency model into a practical web-server story. A 2011 IEEE Internet Computing article and related conference material framed it as a decade-old Erlang web server known for reliability, stability, and scalability.

Its adoption stayed specialized: it did not become the default general-purpose web server, but it mattered to Erlang users who wanted web serving without leaving the BEAM. It also became a platform for related Erlang web projects and examples, including appmods, yapps, and frameworks or applications that used Yaws as the HTTP layer.

### How it is used

Yaws can be run as a normal webserver daemon from yaws.conf or embedded into an Erlang/OTP application. In development, users commonly run it interactively, serve static files, and add .yaws dynamic pages or appmods for request handling.

For package users, the key files are the yaws executable and yaws.conf. The package is useful when maintaining Erlang web applications, old Yaws sites, test servers, or embedded HTTP interfaces where using Erlang directly for request handling is the point.

### Why package nerds care

Yaws is a classic example of language-runtime infrastructure becoming a package-manager artifact. Installing it pulls an Erlang-native web server into the Unix service model, with config files, examples, documentation, and a daemon command.

It also captures an important historical argument in server software: concurrency and failure isolation from Erlang processes, rather than thread-per-connection or process-per-connection designs, could be a practical foundation for web workloads.

### Timeline

- 2001: Yaws is conceived by Claes Wikstrom, according to later IEEE and Erlang community histories.
- 2002: Early Yaws material and comparisons emphasize Erlang concurrency under many simultaneous connections.
- 2009: The erlyaws/yaws GitHub repository is created.
- 2011: Steve Vinoski's Yaws article and Erlang Factory talk present it as a decade-old Erlang web server.
- 2024: The official Yaws PDF manual continues to document standalone, embedded, dynamic-content, WebSocket, and proxy features.

### Related projects

- Erlang/OTP is the runtime foundation for Yaws' process model and embedded use.
- ErlyWeb and Erlang Web are related Erlang web frameworks historically associated with Yaws.
- Inets is Erlang/OTP's own HTTP server alternative, often compared with Yaws in Erlang deployments.

### Sources

- <https://api.github.com/repos/erlyaws/yaws>
- <https://erlyaws.github.io/>
- <https://erlyaws.github.io/yaws.pdf>
- <https://github.com/erlyaws/yaws>
- <https://steve.vinoski.net/pdf/IC-Yaws.pdf>
- <https://www.erlang-factory.com/upload/presentations/409/vinoski-ef-london-2011.pdf>


## Security Notes

broad file, network, media, or database tool signal.

- **Geiger risk:** blue / medium
- broad file, network, media, or database tool signal


## Configuration and credential file locations

These source-backed paths show where this package keeps local settings or durable credentials. Automic Vault can use them as review targets for secret scanning, migration, and command approval.


## Configuration files

- Unix: ${prefix}/etc/yaws/yaws.conf, /etc/yaws/yaws.conf
## Source Database Details

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

## Other Package-Manager Records

- Debian apt - erlang-yapp - 2.2.0+dfsg-2: normalized package name match | Debian stable package indexes: erlang-yapp from https://deb.debian.org/debian/dists/stable/main/binary-amd64/Packages.xz | Erlang application for deploying Yaws webserver applications | http://yaws.hyber.org/
- Debian apt - erlang-yaws - 2.2.0+dfsg-2: normalized package name match | Debian stable package indexes: erlang-yaws from https://deb.debian.org/debian/dists/stable/main/binary-amd64/Packages.xz | Erlang application which implements HTTP webserver | http://yaws.hyber.org/
- Debian apt - yaws - 2.2.0+dfsg-2: normalized package name match | Debian stable package indexes: yaws from https://deb.debian.org/debian/dists/stable/main/binary-amd64/Packages.xz | High performance HTTP 1.1 webserver written in Erlang | http://yaws.hyber.org/
- Debian apt - yaws-chat - 2.2.0+dfsg-2: normalized package name match | Debian stable package indexes: yaws-chat from https://deb.debian.org/debian/dists/stable/main/binary-amd64/Packages.xz | Chat application for Yaws webserver | http://yaws.hyber.org/
- Debian apt - yaws-doc - 2.2.0+dfsg-2: normalized package name match | Debian stable package indexes: yaws-doc from https://deb.debian.org/debian/dists/stable/main/binary-amd64/Packages.xz | Documentation and examples for Yaws webserver | http://yaws.hyber.org/
- Debian apt - yaws-mail - 2.2.0+dfsg-2: normalized package name match | Debian stable package indexes: yaws-mail from https://deb.debian.org/debian/dists/stable/main/binary-amd64/Packages.xz | Webmail application for Yaws webserver | http://yaws.hyber.org/
- Debian apt - yaws-wiki - 2.2.0+dfsg-2: normalized package name match | Debian stable package indexes: yaws-wiki from https://deb.debian.org/debian/dists/stable/main/binary-amd64/Packages.xz | Wiki application for Yaws webserver | http://yaws.hyber.org/
- Debian apt - yaws-yapp - 2.2.0+dfsg-2: normalized package name match | Debian stable package indexes: yaws-yapp from https://deb.debian.org/debian/dists/stable/main/binary-amd64/Packages.xz | Provides an easy way to deploy applications for Yaws webserver | http://yaws.hyber.org/
- Nix - yaws: normalized package name match | nixpkgs package indexes: pkgs/by-name/ya/yaws/package.nix from https://api.github.com/repos/NixOS/nixpkgs/git/trees/master?recursive=1
- Ubuntu apt - erlang-yapp - 2.1.1+dfsg-2: normalized package name match | Ubuntu 24.04 LTS package indexes: erlang-yapp from https://archive.ubuntu.com/ubuntu/dists/noble/universe/binary-amd64/Packages.gz | Erlang application for deploying Yaws webserver applications | http://yaws.hyber.org/
- Ubuntu apt - erlang-yaws - 2.1.1+dfsg-2: normalized package name match | Ubuntu 24.04 LTS package indexes: erlang-yaws from https://archive.ubuntu.com/ubuntu/dists/noble/universe/binary-amd64/Packages.gz | Erlang application which implements HTTP webserver | http://yaws.hyber.org/
- Ubuntu apt - yaws - 2.1.1+dfsg-2: normalized package name match | Ubuntu 24.04 LTS package indexes: yaws from https://archive.ubuntu.com/ubuntu/dists/noble/universe/binary-amd64/Packages.gz | High performance HTTP 1.1 webserver written in Erlang | http://yaws.hyber.org/
- Ubuntu apt - yaws-chat - 2.1.1+dfsg-2: normalized package name match | Ubuntu 24.04 LTS package indexes: yaws-chat from https://archive.ubuntu.com/ubuntu/dists/noble/universe/binary-amd64/Packages.gz | Chat application for Yaws webserver | http://yaws.hyber.org/
- Ubuntu apt - yaws-doc - 2.1.1+dfsg-2: normalized package name match | Ubuntu 24.04 LTS package indexes: yaws-doc from https://archive.ubuntu.com/ubuntu/dists/noble/universe/binary-amd64/Packages.gz | Documentation and examples for Yaws webserver | http://yaws.hyber.org/
- Ubuntu apt - yaws-mail - 2.1.1+dfsg-2: normalized package name match | Ubuntu 24.04 LTS package indexes: yaws-mail from https://archive.ubuntu.com/ubuntu/dists/noble/universe/binary-amd64/Packages.gz | Webmail application for Yaws webserver | http://yaws.hyber.org/
- Ubuntu apt - yaws-wiki - 2.1.1+dfsg-2: normalized package name match | Ubuntu 24.04 LTS package indexes: yaws-wiki from https://archive.ubuntu.com/ubuntu/dists/noble/universe/binary-amd64/Packages.gz | Wiki application for Yaws webserver | http://yaws.hyber.org/


## Related links

- [Source-control packages](https://www.automicvault.com/pkg/source-control-tools/) - Belongs to a source-control command family.
- [Secret-risk packages](https://www.automicvault.com/pkg/secret-risk-packages/) - Has protected-tool coverage, approval-gate, or non-low Geiger security signals.
- [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.
- [erlang](https://www.automicvault.com/pkg/brew/erlang/) - Runtime dependency declared by Homebrew.
- [autoconf](https://www.automicvault.com/pkg/brew/autoconf/) - Build dependency declared by Homebrew.
- [automake](https://www.automicvault.com/pkg/brew/automake/) - Build dependency declared by Homebrew.
- [libtool](https://www.automicvault.com/pkg/brew/libtool/) - Build dependency declared by Homebrew.
- [httpd](https://www.automicvault.com/pkg/brew/httpd/) - Shares av.db curated category or tags: cli, http, networking, server, web-server.
- [ferron](https://www.automicvault.com/pkg/brew/ferron/) - Shares av.db curated category or tags: cli, http, networking, web-server.
- [h2o](https://www.automicvault.com/pkg/brew/h2o/) - Shares av.db curated category or tags: cli, http, networking, web-server.
- [nginx](https://www.automicvault.com/pkg/brew/nginx/) - Shares av.db curated category or tags: cli, http, networking, web-server.
- [static-web-server](https://www.automicvault.com/pkg/brew/static-web-server/) - Shares av.db curated category or tags: cli, http, networking, web-server.
- [algernon](https://www.automicvault.com/pkg/brew/algernon/) - Shares av.db curated category or tags: cli, networking, web-server.
- [caddy](https://www.automicvault.com/pkg/brew/caddy/) - Shares av.db curated category or tags: cli, networking, web-server.
- [fcgi](https://www.automicvault.com/pkg/brew/fcgi/) - Shares av.db curated category or tags: cli, networking, web-server.

## Combined YAML source

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


## Sources

- Nucleus package database
- Geiger risk classifier
- package-page enrichment
- curated configuration and credential file locations
- 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
