Current Projects



Demand Paging

Demand paging refers to the ability to load only needed pages of memory into RAM, leaving other pages on disk, to reduce memory use. Operating systems almost always include this feature. Urbit does not include it yet, but it will need to, since Urbit is a "single-level store".


Epoch System

Chunk Event Log into Epochs


New Mars Snapshot Design

New Mars has a novel scheme for ensuring copy-on-write semantics for memory pages in a way that minimizes disk write amplification when taking an incremental snapshot.


Use Nouns over HTTP

Eyre, Urbit's HTTP server, only supports communicating using JSON at the moment. Using "jammed" (serialized) nouns over HTTP would move JSON conversion logic from the server to the client, allowing a fully featured Gall agent to be written, including communication with a web client, without needing to write JSON conversions in Hoon.


Basic Remote Scry Protocol

The "Fine" remote scry protocol will form the foundation of scalable content distribution in Urbit, by allowing many subscriber ships to read data efficiently from a publisher ship without incurring excessive load on the publisher.


Native UI Research: Alpha

One of the main barriers to writing an Urbit app is that the standard way to present a user interface is by writing it in JavaScript that runs in a web browser. This has advantages, but it requires writing code in two languages, and it means you can't stay in Urbit entirely when writing an app.



Refactor Ames Vane

The Ames vane could be shorter, easier to read, more performant, and easier to prove correct.


Userspace Permissioning

Kernel and applications are both unprotected against malicious applications until userspace permissioning is added.



New Mars

New Mars is an experimental rewrite of the Nock interpreter intended for much higher performance.