Automic VaultAutomic Vault

brew

Install urweb with Homebrew, Nix

Ur/Web programming language. Version 20200209 via Homebrew; verified 2026-07-01.

install

Additional install commands

macOS

Homebrewverified · 100%
brew install urweb

local Homebrew formula metadata

Linux

Nixverified · 92%
nix profile install nixpkgs#urweb

nixpkgs package indexes · pkgs/by-name/ur/urweb/package.nix · source: api.github.com

overview

Package summary

Ur/Web programming language

Commands and aliases

  • urweb

history

Project history and usage

Ur/Web is a domain-specific, statically typed functional programming language and compiler for database-backed web applications. The official site presents Ur as an ML/Haskell-like pure, strict, statically typed language with row-type metaprogramming, and Ur/Web as Ur plus web-specific parsing, optimization, and a standard library for dynamic SQL-backed applications.

Project history

Adam Chlipala's 2010 PLDI paper introduced Ur as a language for statically typed metaprogramming with type-level record computation and described Ur/Web as a special standard library for modern web applications. The official resources page lists additional 2010 talks, a 2010 OSDI paper on security policies, and later Ur/Web research papers.

The 2015 POPL paper framed Ur/Web as a simpler model for modern web programming: one language compiled to the necessary web-standard languages, with modular encapsulation of web state and a concurrency model based on transactions and cooperative preemption. The same period also produced an ICFP 2015 compiler paper describing Ur/Web compilation to efficient native code without garbage collection.

The current GitHub README and official site emphasize type-level guarantees uncommon in mainstream web frameworks: well-typed programs should avoid code injection, invalid HTML, dead internal links, form-handler mismatches, invalid SQL queries, and marshaling mistakes between browser, server, and database.

Adoption history

The official site lists several production applications, including BazQux Reader, Bitcoin Merge Mining Pool, Ecosrv, Extensibl, and Oilprice, along with student projects and blog posts from 2010 onward. It also lists package/container availability in Arch AUR, Debian, Docker, Homebrew, Milis Linux, Nix, OpenBSD experimental ports, and Ubuntu, while this batch's input confirms Homebrew and Nix package-manager records.

How it is used

A typical package-manager user installs the compiler as urweb, writes .ur, .urs, and .urp project files, and invokes the urweb executable to compile applications. The GitHub README shows compiling and running a bundled hello demo, while the official resources page directs users to a tutorial, reference manual, demos, FAQ, mailing list, and GitHub issues.

Why package nerds care

Ur/Web is package-nerd significant because it is not just another library: it is a research language, compiler, runtime model, and web framework packaged as a Unix-style compiler tool. Its availability in Homebrew, Nix, Debian, Ubuntu, and other systems makes an academic language experiment installable through ordinary package workflows.

It also illustrates why package metadata can matter for niche languages. A formula or derivation gives users a reproducible compiler and dependencies, which is crucial for trying a language whose value comes from whole-program guarantees and compiler behavior rather than a single library API.

Timeline

  • 2010-06: PLDI paper on Ur describes Ur/Web as a web-application layer on Ur.
  • 2010: Official resources list Ur/Web talks and research around typed web programming.
  • 2015-01: POPL paper presents Ur/Web as a simple model for programming the web.
  • 2015-08: ICFP paper describes the optimizing Ur/Web compiler.
  • 2015-12-20: GitHub repository metadata records repository creation.
  • 2020-02-09: Official site and GitHub release metadata identify the 20200209 stable release.

Related projects

  • The official GitHub organization includes Ur/Web libraries and examples such as UPO, email, world, feed, and ajaxUpload. The official site also compares Ur/Web with broader web-framework practice and lists related demos and tutorials.

Sources

  • GitHub repository metadata: https://api.github.com/repos/urweb/urweb
  • Input source_facts.package-manager lists Homebrew and Nix packaging.
  • Official GitHub README: https://raw.githubusercontent.com/urweb/urweb/master/README.md
  • Official project site main page: http://www.impredicative.com/ur/main.html
  • Official resources page: http://www.impredicative.com/ur/resources.html
  • Official users page: http://www.impredicative.com/ur/users.html
  • Ur PLDI 2010 paper page: https://adam.chlipala.net/papers/UrPLDI10/
  • Ur/Web ICFP 2015 compiler paper page: https://adam.chlipala.net/papers/UrWebICFP15/
  • Ur/Web POPL 2015 paper page: https://adam.chlipala.net/papers/UrWebPOPL15/

security posture

Risk level: yellow

generalized runtime or code generation signal.

Risk classifier

yellow risk · medium confidence · runtime

Why

  • generalized runtime or code generation signal

Signals

  • text:programming language

Install behavior

  • No Homebrew post-install hook is recorded in formula metadata.
  • Homebrew bottle metadata is available for 6 platform targets.
  • Installs with 3 runtime dependencies.
  • Build metadata lists 4 build dependencies.

Recommended review

Before unattended agent use, check whether the tool reads plaintext credentials, writes remote state, publishes artifacts, or shells out to plugins.

executables

Installed executables

CommandKindExposureNote
urwebcliglobal executable

freshness

Version and freshness

These signals separate page generation age, package-manager activity, and upstream release comparison. Version lag is warned only when an evidence URL and comparable versions are present.

page generated2026-07-08
manager version20200209
manager updated2026-07-01
local dataok
upstreamnot checked
latest detectednot detected

https://github.com/urweb/urweb

install metadata

Package metadata

Package keybrew:urweb
Version20200209
Package managerHomebrew
Package manager pagehttps://formulae.brew.sh/formula/urweb
Homepagehttp://www.impredicative.com/ur/
Repositoryhttps://github.com/urweb/urweb
Upstream docshttp://www.impredicative.com/ur
LicenseBSD-3-Clause
Source archivehttps://github.com/urweb/urweb/releases/download/20200209/urweb-20200209.tar.gz
Last updated2026-07-01T21:22:40Z
Pulseupdated
Dependenciesgmp, icu4c@78, openssl@4
Build dependenciesautoconf, automake, libtool, mlton
Bottleavailable (on arm64_linux, arm64_sequoia, arm64_sonoma, arm64_tahoe, sonoma, x86_64_linux)
Homebrew post-installnot defined
Servicenone declared

registry facts

Source database details

Source DatabaseHomebrew formula API
Taphomebrew/core
Full Nameurweb
Version Scheme0
Revision13
Bottle Stable Root URLhttps://ghcr.io/v2/homebrew/core
Deprecatedno
Disabledno
Keg Onlyno
URL Keys
  • stable

source database matches

Other package-manager records

Matches are pulled from external package-manager indexes and kept separate from local Automic Vault package links.

Nix95%

urweb

nix profile install nixpkgs#urweb
  • normalized package name match
  • Matched by: Urweb
nixpkgs package indexes · api.github.com · nixpkgs package indexes: pkgs/by-name/ur/urweb/package.nix from https://api.github.com/repos/NixOS/nixpkgs/git/trees/master?recursive=1

source trail

Generated from repository data

This page is generated by av-web from the private package SQLite artifact built by scripts/generate-pkg-sqlite.py.

Used sources

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