~

Roadmap

Completed Projects

~2023.12

Completed

Encrypted Remote Scry

date

2023-12-15

contributors

~hastuc-dibtux

Arvo needs to encrypt scry paths and the values bound to them in order to use the remote scry protocol for private data such as group chats.

Completed

Informal Ping

Introduces an informal (stateless) ping mechanism, moving route maintenance out of arvo and dramatically reducing the load on galaxies, without requiring operator configuration.

~2023.11

Completed

Persistent Nock Caching

date

2023-11-08

Modifies Hoon's ~+ rune to emit a new variant of the %memo Nock memoization hint that includes a path and is expected to be cached persistently, across multiple Arvo events, by the runtime.

~2023.10

Completed

Gall Agent Backups

date

2023-10-09

Exposes agent state in a %gall scry endpoint enabling agent backup and restoration.

~2023.9

Completed

Desk Publisher Switching

date

2023-09-29

contributors

~tinnus-napbus

Allows app publishers to more easily migrate distribution ships.

Completed

HTTP Scrying: Arvo

date

2023-09-19

contributors

~watter-parter

This makes the scry namespace available over HTTP enables reads of Urbit data from the clearweb.

Completed

Epoch System

date

2023-09-18

contributors

~mastyr-bottec

Chunk Event Log into Epochs

Completed

OTA Approval

date

2023-09-20

contributors

~tinnus-napbus

Allow users to selectively enable/disable OTA's on a desk-by-desk basis.

~2023.7

Completed

Drop Pokes to Dead Agents

date

2023-07-18

contributors

~dinleb-rambep

Adds an interface between Ames and Gall that lets Gall tell Ames to drop an incoming %plea packet in case the plea targets an agent that isn't running. The sender will retry every two minutes indefinitely, so if the agent starts running, the %plea will eventually go through, with minimal state on the receiving ship.

Completed

Consolidate Packet Re-Send Timers

date

2023-07-28

Ames sets a lot of timers to remind it to send packets again if they don't get acknowledged fast enough. Reducing the number of timers lowers disk write usage, improves quiescence (which should eventually let hosting providers use less RAM and thereby lower costs), and should improve overall performance on publisher ships.

~2023.6

Completed

%lick: an IPC vane

date

2023-06-22

contributors

~mopfel-winrux

The %lick vane enables communication between Urbit applications and applications operating on the host operating system.

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.

~2023.5

Completed

Demand Paging

date

2023-05-22

contributors

~master-morzod

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

Typed Paths

date

2023-05-09

contributors

~palfun-foslup

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

~2023.4

Completed

date

2023-04-07

The way ships ping their sponsors doesn't always work well behind home routers or other NATs, causing flaky connections.

Completed

Native UI Research: Alpha

date

2023-04-15

contributors

~hastuc-dibtux

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.

~2023.3

Completed

Ames Bug Fixing

date

2023-03-31

contributors

~norsyr-torryn

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

Completed

HTTP Mutable URL Caching

date

2023-03-29

contributors

~watter-parter

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

Refactor Ames Vane

date

2023-03-16

contributors

~norsyr-torryn

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

Completed

Pointer Compression: 8GB Loom

date

2023-03-01

contributors

~barter-simsum

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

Solid-State Publications Prototype

date

2023-03-01

contributors

~wicrum-wicrun

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.

~2023.2

Completed

Event Log Truncation

date

2023-02-15

contributors

~mastyr-bottec

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

Tune %clog Backpressure Time and Space Constants

date

2023-02-13

contributors

~norsyr-torryn

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.

~2023.1

Completed

Doccords

date

2023-01-31

contributors

~datnut-pollen

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

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

Completed

Agents in Clay

date

2022-12-01

contributors

~wicdev-wisryt

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.

~2022.6

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

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

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

Graph Store

date

2020-07-30

contributors

~tacryt-socryp

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

Completed

IPC Redux

A significant rewrite to the runtime IPC protocol.

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