keywords: docType:Overview,category:FuchsiaSystems,docType:ApiReference,category:FuchsiaSecurityAndCompliance,category:FuchsiaFidl keywords_public: FIDL, examples, Fuchsia, calculator, key-value store, canvas, protocol, data types, data flow patterns, acknowledgement pattern, alias, anonymous type, bits, discoverable, enum, feed forward pattern, generated name, handle rights, infallible two way method, named payload, optionality, pagination pattern, persistence, protocol end, recursive type, resource type, scalar type, size constraint, struct payload, table payload, throttled event pattern, union payload description: This page provides a catalog of FIDL examples and a reference of FIDL language concepts, demonstrating how to implement various patterns and data types in Fuchsia.
This is a catalog of FIDL examples intended to demonstrate FIDL concepts through simplified implementations of real software workflows.
The following examples sequentially demonstrate useful FIDL concepts.
The calculator example shows fundamental building blocks for creating your first FIDL protocol.
The key-value store example demonstrates how to build a simple key-value store using FIDL in order to learn about the various data types available in the language.
The canvas example demonstrates how to build a simple 2D line-rendering canvas using FIDL in order to learn about commonly used data flow patterns.
Each “concept” in the FIDL language is exemplified in at least one of the examples listed in the preceding section. A quick reference of each such concept, as well as its example implementations, is listed in the following section.
<<../widgets/_acknowledgement_pattern.md>>
<<../widgets/_alias.md>>
<<../widgets/_anonymous_type.md>>
<<../widgets/_bits.md>>
<<../widgets/_discoverable.md>>
<<../widgets/_enum.md>>
<<../widgets/_feed_forward_pattern.md>>
<<../widgets/_generated_name.md>>
<<../widgets/_handle_rights.md>>
<<../widgets/_infallible_two_way_method.md>>
<<../widgets/_named_payload.md>>
<<../widgets/_optionality.md>>
<<../widgets/_pagination_pattern.md>>
<<../widgets/_persistence.md>>
<<../widgets/_protocol_end.md>>
<<../widgets/_protocol.md>>
<<../widgets/_recursive_type.md>>
<<../widgets/_resource_type.md>>
<<../widgets/_scalar_type.md>>
<<../widgets/_size_constraint.md>>
<<../widgets/_struct_payload.md>>
<<../widgets/_table_payload.md>>
<<../widgets/_throttled_event_pattern.md>>
<<../widgets/_union_payload.md>>