This page lists all of the Fuchsia RFCs. For more information on the RFC process, see Fuchsia RFCs
Active RFCs
Finalized RFCs
RFC area
Accepted
| RFC | Title | Area | Gerrit change | 
|---|---|---|---|
| RFC-0001: Fuchsia Request for Comments (RFC) process | 
 | ||
| RFC-0002: Fuchsia platform versioning | 
 | ||
| RFC-0003: Fuchsia logging guidelines | 
 | ||
| RFC-0004: Units of bytes | 
 | ||
| RFC-0006: Addendum of the RFC process for Zircon | 
 | ||
| RFC-0007: Zircon removal of thread killing | 
 | ||
| RFC-0008: Remove zx_clock_get and zx_clock_adjust | 
 | ||
| RFC-0009: Edge triggered async_wait | 
 | ||
| RFC-0010: zx_channel_iovec_t support for zx_channel_write and zx_channel_call | zx_channel_iovec_t support for zx_channel_write and zx_channel_call | 
 | |
| RFC-0011: zx_object_get_info ZX_INFO_KMEM_STATS_EXTENDED | 
 | ||
| RFC-0012: Zircon Discardable Memory | 
 | ||
| RFC-0013: Cloning a VMO mapping | 
 | ||
| RFC-0014: Relax zx_fifo_create constraints | 
 | ||
| RFC-0015: Compatibility Tests for Fuchsia (CTF) | 
 | ||
| RFC-0016: Boot time page sizes | 
 | ||
| RFC-0017: The FTP Process is dead, long live the RFC Process! | 
 | ||
| RFC-0018: FTP process: A modest proposal | 
 | ||
| RFC-0019: Using evolution = uint64; | 
 | ||
| RFC-0020: Interface ordinal hashing | 
 | ||
| RFC-0021: Soft transitions for methods add and remove | 
 | ||
| RFC-0022: Clarification: Default values for struct members | 
 | ||
| RFC-0023: Compositional model for protocols | 
 | ||
| RFC-0024: Mandatory source compatibility | 
 | ||
| RFC-0025: Bit flags | 
 | ||
| RFC-0027: You only pay for what you use | 
 | ||
| RFC-0028: Handle rights | 
 | ||
| RFC-0029: Increasing method ordinals | 
 | ||
| RFC-0030: FIDL is little endian | 
 | ||
| RFC-0033: Handling of unknown fields and strictness | 
 | ||
| RFC-0037: Transactional message header v3 | 
 | ||
| RFC-0040: Identifier uniqueness | 
 | ||
| RFC-0041: Support for unifying services and devices | 
 | ||
| RFC-0043: Documentation comment format | 
 | ||
| RFC-0047: Tables | 
 | ||
| RFC-0048: Explicit union ordinals | 
 | ||
| RFC-0049: FIDL tuning process evolution | 
 | ||
| RFC-0050: FIDL Syntax Revamp | 
 | ||
| RFC-0052: Type aliasing and new types | 
 | ||
| RFC-0053: Epitaphs | 
 | ||
| RFC-0054: Parameter attributes | 
 | ||
| RFC-0055: Documentation comments | 
 | ||
| RFC-0056: Empty structs | 
 | ||
| RFC-0057: Default no handles | 
 | ||
| RFC-0058: Introduce a deprecated attribute | 
 | ||
| RFC-0059: Reserved bits in vector, string, and array count fields | 
 | ||
| RFC-0060: Error handling | 
 | ||
| RFC-0061: Extensible unions | 
 | ||
| RFC-0066: Programmer advisory explicit defaults | 
 | ||
| RFC-0067: Additions to Fuchsia RFC process | 
 | ||
| RFC-0068: Page Eviction Hints | 
 | ||
| RFC-0069: Standard I/O in ELF Runner | 
 | ||
| RFC-0070: PCI protocol changes to support legacy interrupts | 
 | ||
| RFC-0071: OTA backstop | 
 | ||
| RFC-0072: Standalone Image Assembly Tool | 
 | ||
| RFC-0074: Expose Process Start Time | 
 | ||
| RFC-0075: Deprecate Zedboot-based paving for provisioning devices | 
 | ||
| RFC-0076: FIDL API Summaries | 
 | ||
| RFC-0077: zx_clock_update accuracy improvement | 
 | ||
| RFC-0078: Kernel Sanitizer Coverage for Fuchsia Fuzzing | 
 | ||
| RFC-0079: Detecting debuglog data loss | 
 | ||
| RFC-0080: Detecting VMO Immutability | 
 | ||
| RFC-0081: fastboot boot | 
 | ||
| RFC-0082: Running unmodified Linux programs on Fuchsia | 
 | ||
| RFC-0083: FIDL versioning | 
 | ||
| RFC-0084: Add more metrics to zx_info_task_runtime_t | 
 | ||
| RFC-0085: Reducing the zx_status_t space | 
 | ||
| RFC-0086: Updates to RFC-0050: FIDL Attributes Syntax | 
 | ||
| RFC-0087: Updates to RFC-0050: FIDL Method Parameter Syntax | 
 | ||
| RFC-0089: Core realm variations | 
 | ||
| RFC-0090: Driver shared libraries allowlist | 
 | ||
| RFC-0091: zx_system_get_event ZX_SYSTEM_EVENT_IMMINENT_OUT_OF_MEMORY | 
 | ||
| RFC-0092: Sessions | 
 | ||
| RFC-0093: Design principles of component manifests | 
 | ||
| RFC-0094: Carnelian Virtcon | 
 | ||
| RFC-0095: Build and assemble Workstation out-of-tree | 
 | ||
| RFC-0096: User input architecture | 
 | ||
| RFC-0097: FIDL Toolchain | 
 | ||
| RFC-0098: Component Framework RFC Criteria | 
 | ||
| RFC-0099: Introduce `zx_socket_set_disposition` | 
 | ||
| RFC-0100: Product Metadata | 
 | ||
| RFC-0101: Dynamic components with numbered handles | 
 | ||
| RFC-0102: Forbid CHILD_NO_WRITE with CHILD_RESIZABLE | 
 | ||
| RFC-0103: Software Delivery RFC Criteria | 
 | ||
| RFC-0104: Relative Component URLs | 
 | ||
| RFC-0105: Regular expression libraries | 
 | ||
| RFC-0106: Component manifest includes in the Fuchsia SDK | 
 | ||
| RFC-0107: Dynamic Offers | 
 | ||
| RFC-0108: Component binder protocol | 
 | ||
| RFC-0109: Fast UDP sockets | 
 | ||
| RFC-0110: Reboot for termination of critical components | 
 | ||
| RFC-0111: Initial Fuchsia hardware platform specifications | 
 | ||
| RFC-0112: ACPI support on x86 | 
 | ||
| RFC-0113: Efficient envelopes | 
 | ||
| RFC-0114: Inlining small values in FIDL envelopes | 
 | ||
| RFC-0115: Build Types | 
 | ||
| RFC-0117: Component fuzzing framework | 
 | ||
| RFC-0118: SWD policy at image assembly | 
 | ||
| RFC-0119: System-absolute paths considered harmful | 
 | ||
| RFC-0120: Standalone use of the FIDL wire format | 
 | ||
| RFC-0121: Component lifecycle events | 
 | ||
| RFC-0122: RFC Stakeholders | 
 | ||
| RFC-0123: CPU performance info syscalls | 
 | ||
| RFC-0124: Decentralized Product Integration: Artifact Description and Propagation | Decentralized Product Integration: Artifact Description and Propagation | 
 | |
| RFC-0125: Shortlinks on Fuchsia.dev | 
 | ||
| RFC-0126: Driver Runtime | 
 | ||
| RFC-0127: Structured Configuration | 
 | ||
| RFC-0128: Introduce `zx_vcpu_kick` | 
 | ||
| RFC-0129: Python Support in Fuchsia | 
 | ||
| RFC-0130: Supported Hardware | 
 | ||
| RFC-0131: Design principles of the FIDL wire format | 
 | ||
| RFC-0132: FIDL table size limit | 
 | ||
| RFC-0133: Software Delivery Goals | 
 | ||
| RFC-0134: Software updates time dependency | 
 | ||
| RFC-0135: Package ABI revisions | 
 | ||
| RFC-0136: Fxfs | 
 | ||
| RFC-0137: Discard unknown data in FIDL | 
 | ||
| RFC-0138: Handling unknown interactions | 
 | ||
| RFC-0139: Bazel SDK | 
 | ||
| RFC-0140: Realm Builder | 
 | ||
| RFC-0141: CTF Process | 
 | ||
| RFC-0142: zx_thread_legacy_yield | 
 | ||
| RFC-0143: Userspace Top-Byte-Ignore | 
 | ||
| RFC-0144: Size Check Tool | 
 | ||
| RFC-0145: Eager package updates | 
 | ||
| RFC-0146: Structured Config Schemas in CML | 
 | ||
| RFC-0147: View System | 
 | ||
| RFC-0148: CI Guidelines | 
 | ||
| RFC-0149: FIDL encode validation not mandatory | 
 | ||
| RFC-0150: Update opt-out | 
 | ||
| RFC-0151: Compiler tuning flags for CPU targeting | 
 | ||
| RFC-0152: Improved OOM handling behavior | 
 | ||
| RFC-0153: Ninja customization for Fuchsia | 
 | ||
| RFC-0154: Subpackages | 
 | ||
| RFC-0155: Optional capability routes | 
 | ||
| RFC-0156: Stream Append Mode | 
 | ||
| RFC-0157: Fxfs encryption and multi-volume support | 
 | ||
| RFC-0158: Structured Config Accessors | 
 | ||
| RFC-0159: Execute Only Memory | 
 | ||
| RFC-0160: Remove support for FIDL struct defaults | 
 | ||
| RFC-0161: Scenic Allocator API | 
 | ||
| RFC-0162: Flatland API | 
 | ||
| RFC-0163: Test Output Format | 
 | ||
| RFC-0164: Test Suite API | 
 | ||
| RFC-0165: SDK categories | 
 | ||
| RFC-0166: One UI Stack | 
 | ||
| RFC-0167: Packages in early userspace bootstrapping | 
 | ||
| RFC-0168: Exposing Inspect through InspectSink | 
 | ||
| RFC-0169: SDK Tool Compatibility | 
 | ||
| RFC-0170: Remove binary images from the update package | 
 | ||
| RFC-0171: Improved diagnostics routing | 
 | ||
| RFC-0172: UI Activity Service | 
 | ||
| RFC-0173: Structured Configuration in Component Framework APIs | 
 | ||
| RFC-0174: Scale in Flatland | 
 | ||
| RFC-0175: ELF Runner stdio forwarding defaults | 
 | ||
| RFC-0176: Disallow New Dart programs in the Fuchsia Source Tree | 
 | ||
| RFC-0177: Focus Observer for Parent Views | 
 | ||
| RFC-0178: Multiple debug exception channels per job | 
 | ||
| RFC-0179: Basic clipboard service | 
 | ||
| RFC-0180: Test UI Stack | 
 | ||
| RFC-0181: Lockless Discardable VMO | 
 | ||
| RFC-0182: Deprecate config-data | 
 | ||
| RFC-0183: SDK Library Documentation | 
 | ||
| RFC-0184: POSIX Compatibility for the System Netstack | 
 | ||
| RFC-0185: Remove `zx_interrupt_bind_vcpu` | 
 | ||
| RFC-0186: Bazel for Fuchsia | 
 | ||
| RFC-0187: Allow first thread in process to start with zx_thread_start | 
 | ||
| RFC-0188: Component ABI Compatibility | 
 | ||
| RFC-0189: Window Management | 
 | ||
| RFC-0190: FIDL Support for Syscalls | 
 | ||
| RFC-0191: Fuchsia-on-GCE as a supported system configuration | 
 | ||
| RFC-0192: Device Trees on Fuchsia | 
 | ||
| RFC-0193: Supported C++ Versions | 
 | ||
| RFC-0194: Addendum: Sessions | 
 | ||
| RFC-0195: Positions and ranges in text APIs | 
 | ||
| RFC-0196: FIDL large messages | 
 | ||
| RFC-0197: Node Groups for composites | 
 | ||
| RFC-0198: Magma API | 
 | ||
| RFC-0199: Protect child VMARs | 
 | ||
| RFC-0200: Support adb protocol and interface for hardware testing | 
 | ||
| RFC-0201: Reclaim guest VM memory | 
 | ||
| RFC-0202: Test manager as a Service | 
 | ||
| RFC-0203: Introduce `zx_system_energy_info` | 
 | ||
| RFC-0204: VMO Reference Child | 
 | ||
| RFC-0205: Vulkan Loader | 
 | ||
| RFC-0206: Deprecate stash | 
 | ||
| RFC-0207: Offline blob compression | 
 | ||
| RFC-0208: Distributing Packages with the SDK | 
 | ||
| RFC-0209: Memory priority profiles | 
 | ||
| RFC-0210: Virtualization Capability Routing | 
 | ||
| RFC-0211: Fuchsia on RISC-V | 
 | ||
| RFC-0212: Package Sets | 
 | ||
| RFC-0213: Removing devfs FIDL multiplexing | 
 | ||
| RFC-0214: Fuchsia churn policy | 
 | ||
| RFC-0215: Structured Configuration Parent Overrides | 
 | ||
| RFC-0216: Fuchsia Hosted Repository Guidelines | 
 | ||
| RFC-0217: Open Package Tracking | 
 | ||
| RFC-0218: IOBuffer: A Peered Shared Memory Object for Efficient IO | 
 | ||
| RFC-0219: Zircon Page Compression | 
 | ||
| RFC-0220: The future of in-tree products | 
 | ||
| RFC-0221: Python for out-of-tree system testing | 
 | ||
| RFC-0222: Introduce Fuchsia Controller | 
 | ||
| RFC-0223: zx_vmo_transfer_data | 
 | ||
| RFC-0224: Userspace J-Extension Pointer Masking | 
 | ||
| RFC-0225: Fxblob: Storing blobs in Fxfs | 
 | ||
| RFC-0226: Zircon Pager Writeback | 
 | ||
| RFC-0227: Fuchsia Release Process | 
 | ||
| RFC-0228: FDomain: Remote control of Fuchsia targets | 
 | ||
| RFC-0229: FIDL 2023 | 
 | ||
| RFC-0230: Suspend-To-Idle in Fuchsia | 
 | ||
| RFC-0231: FIDL versioning replacement syntax | 
 | ||
| RFC-0232: FIDL bindings for multiple API levels | 
 | ||
| RFC-0234: Updating the RISC-V ABI: RVA22 + V | 
 | ||
| RFC-0235: Component dictionaries | 
 | ||
| RFC-0236: VMO Snapshot-Modified Clone | 
 | ||
| RFC-0237: Signalling Clock Updates With ZX_CLOCK_UPDATED | 
 | ||
| RFC-0238: VMO size | 
 | ||
| RFC-0239: Platform Versioning in Practice | 
 | ||
| RFC-0240: Asynchronous operations are on objects | 
 | ||
| RFC-0241: Explicit Platform / External Split in SDK Interfaces | 
 | ||
| RFC-0242: Configuration Capabilities | 
 | ||
| RFC-0243: WLAN Roaming | 
 | ||
| RFC-0244: Raise user-defined Zircon exception | 
 | ||
| RFC-0245: VMO Prefetch | 
 | ||
| RFC-0246: API Levels are 32 bits | 
 | ||
| RFC-0247: Enabling LTO in Fuchsia | 
 | ||
| RFC-0248: Problem Statement | 
 | ||
| RFC-0249: crosvm support in the platform | 
 | ||
| RFC-0250: Power topology | 
 | ||
| RFC-0251: No Root Access | 
 | ||
| RFC-0252: No Physical VMO CacheOps | 
 | ||
| RFC-0253: zx_object_get_info ZX_INFO_VMAR_MAPS | 
 | ||
| RFC-0254: Changing Attribution for Copy-on-Write Pages | 
 | ||
| RFC-0255: System Activity Governor | 
 | ||
| RFC-0256: Python application bundling for Lacewing tests | 
 | ||
| RFC-0257: storage-host: Componentizing upper-layer storage drivers | 
 | ||
| RFC-0258: Update from C++17 to C++20 | 
 | ||
| RFC-0259: Monotonic Clock Suspension and the Boot Timeline | 
 | ||
| RFC-0260: Kernel Boot Time Support | 
 | ||
| RFC-0261: Fast and efficient user space kernel emulation | 
 | ||
| RFC-0262: Expand KMEM_STATS | 
 | ||
| RFC-0263: Migrate driver communication to services | 
 | ||
| RFC-0264: Running unmodified AArch32 Linux programs on Fuchsia | 
 | ||
| RFC-0265: Counter: A simple Zircon object for synchronizing across processes | Counter: A simple Zircon object for synchronizing across processes | 
 | |
| RFC-0266: Memory Mappable Kernel Clocks | 
 | ||
| RFC-0267: IOBuffer Ring Buffer Discipline | 
 | ||
| RFC-0268: SDK category updates | 
 | ||
| RFC-0269: Measuring Memory Stalls | 
 | ||
| RFC-0270: Zircon Virtual Interrupt Signals | 
 | ||
| RFC-0271: Anchored Packages | 
 | ||
| RFC-0272: Wake Source Reporting | 
 | ||
| RFC-0273: Handle specific information calls | 
 | ||
| RFC-0274: Kernel Assisted CPU Profiling | 
 | ||
| RFC-0275: Panel drivers | 
 | ||
| RFC-0276: Support for system updates with changes to the blob format | 
 | 
Rejected
| RFC | Title | Area | Gerrit change | 
|---|---|---|---|
| RFC-0005: Blobfs snapshots | 
 | ||
| RFC-0026: Envelopes everywhere | 
 | ||
| RFC-0031: Typed Epitaphs | 
 | ||
| RFC-0032: Efficient envelopes | 
 | ||
| RFC-0034: Null terminate strings | 
 | ||
| RFC-0035: Automatic flow tracing | 
 | ||
| RFC-0036: Update to struct declarations | 
 | ||
| RFC-0038: Separating layout from constraints | 
 | ||
| RFC-0039: Types come second | 
 | ||
| RFC-0042: Non nullable types | 
 | ||
| RFC-0044: Extensible method arguments | 
 | ||
| RFC-0045: Zero-size empty structs | 
 | ||
| RFC-0051: Safer structs for C++ | 
 | ||
| RFC-0062: Method impossible | 
 | ||
| RFC-0063: OrdinalRange | 
 | ||
| RFC-0064: Box <Knox> | 
 | ||
| RFC-0065: No optional strings or vectors | 
 | ||
| RFC-0088: Updates to RFC-0050: FIDL Bits, Enum, and Constraints Syntax | Updates to RFC-0050: FIDL Bits, Enum, and Constraints Syntax | 
 | |
| RFC-0116: Wire format support for sparser FIDL tables | 
 | ||
| RFC-0233: FIDL legacy by default | 
 |