~

Roadmap

Completed Projects

~2023.6

Completed

Agents in Clay

This project overhauls Arvo's upgrade system to make it simpler and more reliable. Since it moves the locus of control of agents from Gall to Clay, it's often referred to as the "Agents in Clay" project.

Completed

Ames Bug Fixing

Multiple bugs were introduced by a major release in mid-2022, called the "gall request queue fix". `~norsyr-torryn` is fixing these bugs.

Completed

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".

Completed

Doccords

"Doccords" are Hoon's version of docstrings: special code comments parsed into structured data that can be used to generate documentation programmatically.

Completed

Event Log Truncation

The event log grows indefinitely, using more disk space over time. Once event logs can be truncated, disk space can be reclaimed, using a roughly constant amount of disk space over time (the size of the Arvo snapshot, which grows much more slowly than the event log). Reducing disk space in this way is important for reducing cost and maintenance burden for running ships.

Completed

HTTP Mutable URL Caching

Urbit should be able to serve websites at custom URLs efficiently to support serving websites to the old web from a single ship without needing to configure caching reverse proxies such as nginx or varnish.

Completed

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.

Completed

Pointer Compression: 8GB Loom

This project raises the amount of data the runtime can manage from 2GB to 8GB. It is the first phase of the Increase Runtime Data Capacity arc.

Completed

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.

Completed

Solid-State Publications Prototype

For scalability, basic solid-state publications are being prototyped. This is the next step after basic remote scry toward scalable data publishing on Urbit. These prototypes live in userspace; once we've proven the model with some real-world examples, we can build kernel support into Gall.

Completed

Tune %clog Backpressure Time and Space Constants

Tuning the constants in Ames's `%clog` system should reduce network flakiness, reduce the number of Arvo events, and improve publication bandwidth, especially until chat uses remote scry and solid-state subscriptions.

Completed

Typed Paths

Typed paths should improve performance and developer experience, and it could unblock a typed interface to publications.

~2023.1

Completed

Terminal Improvements

date

2023-01-18

contributors

~palfun-foslup

~palfun-foslup wrote a whole suite of improvements to the terminal. This opened up a lot of opportunities for better developer experience and terminal-based user experience.

Completed

Improve Vere Build System

date

2023-01-13

Experiments are being conducted to extract Vere from the monorepo into its own git repository and replace the current Nix build setup with a new one based on the Bazel build system.

~2022.6

Completed

Kahn

date

2022-06-01

contributors

~silsyn-wathep

Kahn is a "control plane" vane, allowing external processes to talk with a ship through a Unix socket.

Completed

Clay Tombstoning

date

2022-06-01

contributors

~wicdev-wisryt

Because Clay, the filesystem vane, is version-controlled, it was previously not possible to delete old revisions of files. Tombstoning was introduced to retain the reference while removing the data.

Completed

Vere Upgrades

date

2022-06-01

Adds features to simplify upgrading the binary for users.

~2022.3

Completed

Commit Messages

date

2022-03-22

contributors

~sipfyn-pidmex

Added commit messages to the file system for revisions.

~2022.2

Completed

Layer 2

Due to gas prices on the Ethereum blockchain, a layer 2 solution was developed to rollup transactions on the Urbit network.

~2021.9

Completed

Software Distribution

A number of features written to support third-party application distribution on independent desks.

~2021.5

Completed

Bitcoin Wallet

The Bitcoin app is a non-custodial Bitcoin wallet which allows Urbit users to send each other Bitcoin using their planet names.

~2021.2

Completed

HTTP API

date

2021-02-18

contributors

~radbur-sivmus

The HTTP API is an NPM package that bundles interfaces for talking to an Urbit ship from a web browser.

~2021.1

Completed

King Haskell

date

2021-01-29

A re-implementation of the Urbit runtime in Haskell.

~2020.12

Completed

The Last Network Breach

date

2020-12-08

Changes to the network protocol previously necessitated a complete reset (historically called a "breach") of the entire network state, requiring all users to take action to get onto the new network. By introducing version negotiation between Arvo and Vere, future changes can be made entirely over-the-air.

~2020.11

Completed

Hark Store

date

2020-11-10

contributors

~hastuc-dibtux

Hark is the notification system for Landscape, allowing apps to create and group notifications together in app-defined categories.

~2020.8

Completed

Stateless Forwarding

date

2020-08-06

contributors

~palfun-foslup

Stateless packet forwarding allows ships to relay packets to other ships without writing to their own event log.

~2020.7

Completed

IPC Redux

A significant rewrite to the runtime IPC protocol.

Completed

Graph Store

date

2020-07-30

contributors

~tacryt-socryp

Graph Store is a non-relational database suitable for use in building social media applications.

~2020.6

Completed

Ford Fusion

date

2020-06-29

Merged the old build system vane, Ford, into Clay, the filesystem vane, so that Clay handles the build process, ensuring atomic, self-contained, and ordered updates.

~2020.4

Completed

OS1

OS1 is the Landscape UI written to be organized entirely around groups.

~2020.1

Completed

Dbug

date

2020-01-26

contributors

~palfun-foslup

Dbug lets you inspect the internal state of a running agent from the Dojo.

~2019.12

Completed

date

2019-12-12

contributors

~palfun-foslup

A social bookmarking app for groups to share links to other things on the web.

Completed

New Ames

date

2019-12-04

A rewrite of the networking protocol to extend inter-ship subscription mechanics.

Completed

Static Gall

date

2019-12-04

contributors

~wicdev-wisryt

Simplifies Gall agents, arms, and subscription logic.

Completed

Threads

date

2019-12-04

contributors

~wicdev-wisryt

Threads are a stand-alone version of transactional applications.

~2019.11

Completed

Soto

date

2019-11-19

contributors

~haddef-sigwen

The Landscape app that let you use the Dojo from the web UI.

~2019.10

Completed

Groups

date

2019-10-01

contributors

~tacryt-socryp

Groups allow different channels to be collected together under a unified membership management and policy.

~2019.5

Completed

Transaction Apps

date

2019-05-30

contributors

~wicdev-wisryt

Introduces libraries to implement an asynchronous transaction monad, similar to JavaScript promises, that enables imperative inline code for asynchronous input/output.

~2019.4

Completed

LMDB

date

2019-04-24

contributors

~littel-ponnys

A migration to a lightning memory-mapped database for the event log.

~2019.3

Completed

Modulo

The Landscape UI pattern that organises applications around app tiles and discrete application endpoints.

~2019.1

Completed

Azimuth

In Urbit's early stages, when it was still highly experimental, the address space was managed and issued manually by Tlon. In 2017, it was decided that Urbit's address space would be moved to a smart contract on Ethereum. In early 2019, Urbit's PKI system was launched on the Ethereum blockchain.

~2018.12

Completed

2018 and earlier content

date

2018-12-01

2018 and earlier content will be available in the near future.