Roadmap

Josh Matthews edited this page Jan 7, 2017 · 93 revisions
Clone this wiki locally

Our long-term plan is to:

  1. Incrementally replace components in Firefox with ones written in Rust and shared with Servo.
  2. Determine product opportunities for a standalone Servo browser or embeddable library (e.g., for Android).

Our 2016 goals for Servo are:

  • Explore new areas for performance improvements
    • e.g., GPU CSS, SIMD layout, DOM wrapper fusion
  • Fill in remaining placeholder subsystem implementations
    • e.g., I/O, caching
  • Continue adding web platform features
    • e.g., media, text input/editing, missing layout & JS features
  • Bring Windows port to Tier 1
  • Webrender: Move from prototype to production

Our completed goals for 2016 are:

  • Create an initial end-to-end browser tech demo that we can start iterating
    • browser.html frontend
  • Oxidation: Ship Rust/Servo components in Firefox
  • Track performance systematically
    • Allow comparisons with Gecko and Blink
    • Support more standard benchmarks
  • Webrender is now the default graphics engine in production

Q4 2016

Top priorities for this quarter are:

  • Get the autolander working for Stylo to share Servo code with Firefox
  • Finish off the Servo components required for Stylo
  • Complete the transition to MSVC on Windows
  • Experiment with WebRender in other programs

High-level work plan for staff members:

  • simon, manish & mbrubeck on stylo
  • manish - cssom
  • glenn webrender
  • diane on cross origin wrappers
  • patrick layout bugs & webrender
  • alan script/layout concurrency
  • nox document.write
  • ms2ger - fetch api, sync about:blank, surfacing google docs bugs
  • jack
  • lars windows, oxidation, android
  • shing flexbox, stylo
  • emily Autolander migration
  • jdm spec-compliant image loads, microtasks, and intermittent failures

Internally committed 2016 goals

  • Implement production IO and caching subsystems
  • Polish and validate WebRender, a next-generation graphics subsystem
  • Layout maturity
  • Ship one Rust component in Firefox Nightly, riding the trains
  • Experiment with the uplift of a major piece of Servo into Gecko

PROPOSED 2017 goals

Research

  • Magic DOM and/or other JS optimizations
  • Software transactional memory (in service of layout + script parallelism)

Technology uplift

  • Finish Stylo
  • Extend WebRender and support integration with other programs
  • Experiment with initial layout integration with other programs

Product exploration

  • Flexbox
  • Extend and better support embedding APIs
  • Implement high priority DOM APIs