A curated list of awesome Fuchsia resources, tools and information. If you find anything interesting that belongs on the list, please create a pull request 👍
Fuchsia is a modular, capability-based operating system. Fuchsia runs on modern 64-bit Intel and ARM processors. It is created by Google and completely open source. Currently it has not been officially announced by Google but it is expected to be revealed at the IO 2019.
- Fuchsia on Android Emulator [04/05/19] - How to run fuchsia on android emulator
- Fuchsia Press Weekly - Newsletter [Weekly] - Hand-picked round up of the best Fuchsia development links every week
- JavaScript app support [03/19/19] Google working to bring JavaScript app support to Fuchsia
- Fuchsia on AMD Chromebooks [03/01/19] - Google is working on bringing Fuchsia OS to AMD-based Chromebooks
- Android app support [01/02/19] - Fuchsia OS confirmed to have Android app support via Android Runtime
- Android Emulator supports Fuchsia [12/05/18] - The official Android Emulator is picking up support for Fuchsia’s Zircon kernel
- Huawei testing Fuchsia [11/23/18] - Huawei begins testing Fuchsia OS on the Honor Play
- Fuchsia tested on Home Hub [10/10/18] - Google Home hub is reported to be a Fuchsia OS Test Device
- Fuchsia Glossary - Provides short definitions for a collection of technical terms used in Fuchsia
- Layers of Fuchsia - Short but complete 9To5Google Article
- Fuchsia Overview - Introduction to Fuchsia and outlook to it's possible future
Zircon is the core platform that powers the Fuchsia OS. Zircon is composed of a microkernel as well as a small set of userspace services, drivers, and libraries necessary for the system to boot, talk to hardware, load userspace processes and run them, etc.
- Quick Start Recipes - Build Zircon on your machine
- Concepts - Zircon Kernel Concepts
- Documentation - Official Zircon Documentation
- Source - Zircon source code
Garnet is the first Fuchsia layer above the kernel. It contains a variety of low-level things that every OS needs including device drivers (network, graphics, etc) and software installation. The Garnet UI services are called Mozart
.
Scenic is a Garnet service that composes graphical objects from multiple processes into a shared scene graph. The objects can cast shadows or reflect light onto each other, even if the originating processes have no knowledge of each other.
- Introduction - Explains concepts of Scenic including
Nodes
,Scenes
andCompositors
- Source - Scenic source code
Gfx owns the scene graph and is responsible for rendering.
- Source - Gfx source code
Input is responsible for routing input events to clients, which also involves coordinating gesture recognition across clients
- Introduction - How RootPresenter and Scenic process visually-related input Source - Input source code
Escher is a Vulkan-based rendering library used by the Gfx system
- Source - Escher source code
Amber is an update system with the ambition of updating all components running on a Fuchsia system whether that component is a kernel, a bootloader, a system service, an application, etc.
- Introduction - Short introduction to Amber
- The Update Framework - Basis for Amber's update distribution
- 9To5Google Article - This article gives an easy to understand introduction to Amber
- Source - Amber source code
Peridot provides the services needed to create a cohesive, customizable, multi-device user experience assembled from modules, stories, agents, entities, and other components.
Modular is the application framework for Fuchsia. It manages user experiences by composing UI, data, and users from a diverse set of components into logical and visual containers called Stories.
- Overview - Basic concepts of Modular
- Simple Example - Simple Fuchsia program (C++) using the modular framework
Ledger is a distributed storage system for Fuchsia.
Each application running on behalf of a particular user has a separate data store managed by Ledger. It is transparently synchronized across devices of its user by cloud providers.
The goal of ledger is that the user does not notice it while it
- Ledger state - View all data collected by your ledger
- Cloud provider interface - Definition of a cloud service that can be used by ledger
- Firestore cloud provider - A Firestore-based implementation of the cloud provider interface
- Life of a put - Explanation how Ledger works by following the mechanics of a single Put operation
- Source - Ledger Source code
Topaz contains four major categories of software: modules, agents, shells, and runners.
For example, modules include the calendar, email, and terminal modules, shells include the base shell and the user shell, agents include the email and chat content providers, and runners include the Web, Dart, and Flutter runners.
- Simple App - Very simple Flutter App for Fuchsia
- Mine Sweeper - Flutter implementation of minesweeper for Fuchsia
- Source - Topas source code
You can build and run Fuchsia yourself.
- Getting Started - First steps on building Fuchsia
- Get Fuchsia Source - How to get the Fuchsia Source
- Bazel - Build tool for Fuchsia
The Fuchsia Core SDK contains a small set of libraries and tools required to start building and running programs that target Fuchsia
- Introduction - Introduction to the Fuchsia SDK
- Download SDK - Download the Core SDK package, Bazel and Qemu
Flutter allows you to build beautiful native apps on iOS, Android and Fuchsiafrom a single codebase.
- Get Started - Install Flutter on your machine
- Dart Pub - All Flutter packages and libraries
- Awesome Flutter Packages - Collection of the best Flutter packages (with images)
- Awesome Flutter - Collection of Flutter packages, articles and resources
The Fuchsia Interface Definition Language is the language used to describe interprocess communication (IPC) protocols used by programs running on the Fuchsia Operating System.
- Official Tutorial - Best resource to start FIDL development
- FIDL examples - List of easy to understand examples
A Fuchsia package is one or more collections of files that provide one or more programs, components or services for a Fuchsia system.
- Introduction - Introduction to Fuchsia packages
- Developing a Package - Basics of a package-driven workflow in Fuchsia
- Qemu - A generic machine emulator and virtualizer that works with Fuchsia
- Fuchsia Web Demo - Fuchsia Demo running in your browser
- Armadillo APK - An APK of the (outdated) Armadillo UI
- r/Fuchsia - Fuchsia subreddit with news and information about Fuchsia
- Fuchsia OS 中文社区 - Fuchsia China Telegram Group with news and information about Fuchsia
To the extent possible under law, Simon Leier has waived all copyright and related or neighboring rights to this work.