The goals of the UIP project are to:
- Make core development decision-making visible and open to entry.
- Standardize and provide high-quality documentation for Urbit itself and conventions built upon it.
This repository tracks past and ongoing improvements to Urbit in the form of Urbit Improvement Proposals (UIPs). UIP-0001 governs how UIPs are published.
UIPs can be divided into the following categories:
- Standards Track UIPs are improvements to Urbit that require a Kelvin version decrement to any of the following components: the machine code specification, Nock; the programming language and its standard library, Hoon; the kernel, kernel modules, its standard library, or the base distribution — Arvo, vanes, zuse or %base, respectively.
- Informational UIPs describe an Urbit design issue, or provide general guidelines or information to the Urbit community, but do not propose new features. Informational UIPs do not necessarily represent an Urbit community consensus or recommendation, so users and implementors are free to ignore Informational UIPs or follow their advice.
- Process UIPs describe a process surrounding Urbit, or proposes a change to (or an event in) a process. Process UIPs are like Standards Track UIPs but apply to areas other than Urbit itself. They may propose an implementation, but not to Urbit's codebase; they often require community consensus; unlike Informational UIPs, they are more than recommendations, and users are typically not free to ignore them. Examples include procedures, guidelines, changes to the decision-making process, and changes to the tools or environment used in Urbit development. Any meta-UIP is also considered a Process UIP.
Number | Title | Owner | Status | Type |
---|---|---|---|---|
0001 | Purpose and Guidelines | ~wolref-podlex | Living | Process |
0100 | Sticky Scry | ~rovnys-ricfer | Draft | Standards |
0101 | %lick | ~mopfel-winrux | Final | Standards |
0102 | Symmetric Routing | ~rovnys-ricfer | Withdrawn | Standards |
0103 | Persistent Nock Caching | ~rovnys-ricfer | Last Call | Standards |
0104 | Scry Store | ~rovnys-ricfer | Withdrawn | Standards |
0105 | Drop Pokes to Dead Agents | ~rovnys-ricfer | Final | Standards |
0106 | Scry over HTTP | ~watter-parter | Last Call | Standards |
0107 | Auras Renovation | ~ponmep-litsem | Draft | Standards |
0108 | %yard | ~lagrev-nocfep | Draft | Standards |
0109 | Essential Desks | ~wicdev-wisryt | Last Call | Standards |
0110 | Gall Agent Backups | ~midden-fabler, ~mopfel-winrux | Final | Standards |
0111 | Desk Publisher Switcher | ~tinnus-napbus | Final | Standards |
0112 | Informal Ping | ~master-morzod, ~norsyr-torryn | Final | Standards |
0113 | %ames: Directed Messaging | ~master-morzod | Last Call | Standards |
0114 | OTA Approval | ~tinnus-napbus | Final | Standards |
0115 | Breadth-First Arvo | ~wicdev-wicryt, ~rovnys-ricfer | Last Call | Standards |
0116 | Arvo Ticks | ~wicdev-wicryt, ~rovnys-ricfer | Last Call | Standards |
0117 | Ulam: Self-Describing Nouns | ~rovnys-ricfer | Draft | Standards |
0118 | Encrypted Remote Scry | ~hastuc-dibtux | Final | Standards |
0119 | Pretty Printer Improvements | ~sidnym-ladrut | Draft | Standards |
0120 | HTTP Streaming | ~rovnys-ricfer | Last Call | Standards |
0121 | %pine Request at Latest | ~rovnys-ricfer | Draft | Standards |
0122 | %wild: Stateless jet registration | ~ritpub-sipsyl | Last Call | Standards |
0123 | %loop hint: reify infinite loops as crashes | ~ritpub-sipsyl | Last Call | Standards |
0124 | Computation Timeout Hint | ~lagrev-nocfep | Last Call | Standards |
0125 | %eyre/%iris Webssocket Support | ~fidwed-sipwyn | Draft | Standards |
0126 | Pierport Protocol | ~littul-pocdev | Draft | Process |
0127 | Lagoon IEEE 754 Reals | ~lagrev-nocfep | Draft | Standards |
0128 | Monadic Scry Interface | ~fodwyt-ragful, ~mastyr-bottec | Draft | Standards |
0129 | Typed Paths with Coin Encodings | ~rovnys-ricfer | Draft | Standards |
Urbit has been in development for over a decade at time of writing, and until June of 2023 was developed without the use of this UIP process. New UIPs after UIP-0001 will begin their numbering at UIP-0100 to leave room for retroactive improvements that should have canonical documentation for reference.