~

Roadmap

Next Up

A number of projects are slated to be worked on or released soon. Some of these, such as ~palfun-foslup's terminal work and the remote scry protocol, are in the backlog -- done or mostly done, but blocked from release due to other releases needing to go out first. Addressing this backlog is high priority.

Other items in this listing are not yet done but are planned as immediate next steps, such as jet dashboard research and breadth-first Arvo move order.

Projects

Next Up

Breadth-First Arvo Move Order

duration

2 Months

Switching from Arvo's current "depth-first" move order to "breadth-first" intends to improve the reliability of parts of the kernel, including upgrades and breach handling, by switching to chronological ordering of intra-event delivery of moves to vanes.

Next Up

Pointer Compression: Cell Compression

duration

2-4 Months

An optimization would be to ensure that any page of memory inside the "loom" (noun memory arena) stores only cells (pairs) or atoms (numbers).

Next Up

Demand Paging

duration

1-3 Months

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

Next Up

HTTP Mutable URL Caching

duration

1 Month

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.

Next Up

Jet Dashboard Experiments

duration

2-4 Months

Experimenting with different designs for the jet dashboard could improve performance, security, and general simplicity of the codebase.

Next Up

Memory-Efficient Meld

duration

1-2 Months

A more memory-efficient implementation of `|meld` should reduce dangerous memory pressure. This would reduce maintenance burden.

Next Up

Basic Remote Scry Protocol

duration

1-2 Months

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.

Next Up

Terminal Improvements

duration

1 Month

~palfun-foslup has written a whole suite of improvements to the terminal, which are slated for release soon. This will open up a lot of opportunities for better developer experience and terminal-based user experience.

Next Up

Typed Paths

duration

1 Week

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

Next Up

Validate Ames Packets in Vere

duration

1 Month

One of the first things we can do to begin protecting against DoS is to validate packets in Vere before injecting them as Arvo events. This will make it harder for an attacker to lock up a victim's event loop, and it should be a straightforward project.