blob: fef98e914a2ae3b9821010b76923d472b12f4f1c [file] [log] [blame] [view]
# Fuchsia roadmap
The Fuchsia project values transparency with our community. We are sharing our
roadmap to give our community insight into the projects that are being actively
explored by Fuchsia teams.
The projects listed in this roadmap are subject to change and could be modified
based on a change in priorities.
While this list of projects is not exhaustive, it provides a high-level overview
of active projects that inform the way that were currently thinking about
Fuchsia.
## FIDL
The [Fuchsia Interface Definition Language (FIDL)](/docs/glossary.md#fidl) is a
language for defining protocols that are typically used over
[channels](/docs/glossary.md#channel).
The FIDL team is actively exploring the following projects:
### Unifying FIDL C++ bindings
Currently, there are two FIDL binding implementations,
[high-level C++ bindings (HLCPP)](/docs/reference/fidl/bindings/hlcpp-bindings.md)
and
[low-level C++ bindings (LLCPP)](/docs/reference/fidl/bindings/llcpp-bindings.md).
The FIDL team is exploring a solution that augments the LLCPP API surface to
allow the use of high-level domain objects wherever low-level domain objects are
currently used.
### Implementing FIDL versioning
This project helps Fuchsia evolve its APIs through a platform versioning
strategy, which involves annotating FIDL elements with version ranges and
providing tooling to use a FIDL API at a user-specified version.
### FIDL syntax revamp
The FIDL team is working to revamp the syntax for the FIDL language to help
developers understand when changes to a FIDL definition break downstream code.
## Migrating to fuchsia.io2
The Process Framework team is actively exploring how to migrate Fuchsia
libraries and applications from [fuchsia.io](/sdk/fidl/fuchsia.io/) to
[fuchsia.io2](/sdk/fidl/fuchsia.io2/) in order to increase type safety and
client reliability.
## Migrating to fuchsia.hardware.network
The Connectivity team is actively exploring how to migrate existing Fuchsia
drivers and clients from
[fuchsia.hardware.ethernet](/sdk/fidl/fuchsia.hardware.ethernet/) to
[fuchsia.hardware.network](/sdk/fidl/fuchsia.hardware.network/) in order to
improve network performance.
## Components v2
[Components v2](/docs/glossary.md#components-v2) is Fuchsia’s component
architecture that replaces [Components v1](/docs/glossary.md#components-v1).
The following projects are currently underway:
### Continuing migration to Components v2
The goal of the [Component Framework](/docs/glossary.md#component-framework) is
to define Fuchsias units of software execution as components, which are
singular abstractions throughout the Fuchsia system.
The Component Framework team is currently focusing on migrations in the
following areas:
- The stack of Software Delivery components and associated tests, including
the package cache and package resolver.
- The Netstack2 components, including migration of Netemul and associated
tests to Test Runner Framework.
- A subset of components under [sysmgr](/docs/glossary.md#sysmgr) that are
straightforward to migrate.
For more information, see
[State of the Components v2 migration](/docs/concepts/components/v2/migration.md).
### Implementing drivers as components
The Driver Framework team is exploring how to use Components v2 to represent
drivers as components, so that drivers can interact with the rest of Fuchsia in
a uniform way.
## Miscellaneous
The following projects are under consideration by several different Fuchsia
teams:
### Implementing storage enhancements
Teams are evaluating potential improvements that could be made to
[MinFS](/docs/concepts/filesystems/minfs.md) and
[VFS](/docs/concepts/system/life_of_an_open.md#vfs_layer), including generating
a system for benchmarking and implementing paging within the VFS layer.
### Implementing accessibility and input improvements
Multiple teams are collaborating to explore more inclusive handling of user
input events on workstations that are running Fuchsia.