diff --git a/examples/BUILD b/examples/BUILD
new file mode 100644
index 0000000..d9178c1
--- /dev/null
+++ b/examples/BUILD
@@ -0,0 +1,16 @@
+# Copyright 2019 The Bazel Authors. All rights reserved.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#    http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# A collection of examples showing the usage of rules_cc
+licenses(["notice"])
diff --git a/examples/my_c_compile/BUILD b/examples/my_c_compile/BUILD
new file mode 100644
index 0000000..f970895
--- /dev/null
+++ b/examples/my_c_compile/BUILD
@@ -0,0 +1,23 @@
+# Copyright 2019 The Bazel Authors. All rights reserved.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#    http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# Example showing how to create a custom Starlark rule that just compiles C sources
+licenses(["notice"])
+
+load("//examples/my_c_compile:my_c_compile.bzl", "my_c_compile")
+
+my_c_compile(
+    name = "foo",
+    src = "foo.c",
+)
diff --git a/examples/my_c_compile/foo.c b/examples/my_c_compile/foo.c
new file mode 100644
index 0000000..6718fbd
--- /dev/null
+++ b/examples/my_c_compile/foo.c
@@ -0,0 +1,15 @@
+// Copyright 2019 The Bazel Authors. All rights reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//    http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+int foo() { return 42; }
diff --git a/examples/my_c_compile/my_c_compile.bzl b/examples/my_c_compile/my_c_compile.bzl
new file mode 100644
index 0000000..a9cec34
--- /dev/null
+++ b/examples/my_c_compile/my_c_compile.bzl
@@ -0,0 +1,74 @@
+# Copyright 2019 The Bazel Authors. All rights reserved.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#    http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+"""Example about how to create a custom Starlark rule that just compiles C sources."""
+
+load("@bazel_tools//tools/cpp:toolchain_utils.bzl", "find_cpp_toolchain")
+load("@bazel_tools//tools/build_defs/cc:action_names.bzl", "C_COMPILE_ACTION_NAME")
+
+DISABLED_FEATURES = [
+]
+
+def _my_c_compile_impl(ctx):
+    cc_toolchain = find_cpp_toolchain(ctx)
+    source_file = ctx.file.src
+    output_file = ctx.actions.declare_file(ctx.label.name + ".o")
+    feature_configuration = cc_common.configure_features(
+        cc_toolchain = cc_toolchain,
+        requested_features = ctx.features,
+        unsupported_features = DISABLED_FEATURES + ctx.disabled_features,
+    )
+    c_compiler_path = cc_common.get_tool_for_action(
+        feature_configuration = feature_configuration,
+        action_name = C_COMPILE_ACTION_NAME,
+    )
+    c_compile_variables = cc_common.create_compile_variables(
+        feature_configuration = feature_configuration,
+        cc_toolchain = cc_toolchain,
+        source_file = source_file.path,
+        output_file = output_file.path,
+    )
+    command_line = cc_common.get_memory_inefficient_command_line(
+        feature_configuration = feature_configuration,
+        action_name = C_COMPILE_ACTION_NAME,
+        variables = c_compile_variables,
+    )
+    env = cc_common.get_environment_variables(
+        feature_configuration = feature_configuration,
+        action_name = C_COMPILE_ACTION_NAME,
+        variables = c_compile_variables,
+    )
+
+    ctx.actions.run(
+        executable = c_compiler_path,
+        arguments = command_line,
+        env = env,
+        inputs = depset(
+            items = [source_file],
+            # TODO: Use CcToolchainInfo getters when available
+            # See https://github.com/bazelbuild/bazel/issues/7427.
+            transitive = [ctx.attr._cc_toolchain.files],
+        ),
+        outputs = [output_file],
+    )
+    return [DefaultInfo(files = depset(items = [output_file]))]
+
+# This rule does nothing, just propagates all cc_toolchain files.
+my_c_compile = rule(
+    implementation = _my_c_compile_impl,
+    attrs = {
+        "src": attr.label(mandatory = True, allow_single_file = True),
+        "_cc_toolchain": attr.label(default = Label("@bazel_tools//tools/cpp:current_cc_toolchain")),
+    },
+)
diff --git a/examples/write_cc_toolchain_cpu/BUILD b/examples/write_cc_toolchain_cpu/BUILD
new file mode 100644
index 0000000..07caa50
--- /dev/null
+++ b/examples/write_cc_toolchain_cpu/BUILD
@@ -0,0 +1,20 @@
+# Copyright 2019 The Bazel Authors. All rights reserved.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#    http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# Example showing how to get CcToolchainInfo in a custom starlark rule
+licenses(["notice"])
+
+load("//examples/write_cc_toolchain_cpu:write_cc_toolchain_cpu.bzl", "write_cc_toolchain_cpu")
+
+write_cc_toolchain_cpu(name = "write_me_the_cpu")
diff --git a/examples/write_cc_toolchain_cpu/write_cc_toolchain_cpu.bzl b/examples/write_cc_toolchain_cpu/write_cc_toolchain_cpu.bzl
new file mode 100644
index 0000000..2a62168
--- /dev/null
+++ b/examples/write_cc_toolchain_cpu/write_cc_toolchain_cpu.bzl
@@ -0,0 +1,31 @@
+# Copyright 2019 The Bazel Authors. All rights reserved.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#    http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+"""Example about how to get CcToolchainInfo in a custom starlark rule."""
+
+load("@bazel_tools//tools/cpp:toolchain_utils.bzl", "find_cpp_toolchain")
+
+def _write_cc_toolchain_cpu_impl(ctx):
+    cc_toolchain = find_cpp_toolchain(ctx)
+    output = ctx.actions.declare_file(ctx.label.name + "_cpu")
+    ctx.actions.write(output, cc_toolchain.cpu)
+    return [DefaultInfo(files = depset([output]))]
+
+# This rule does nothing, just writes the target_cpu from the cc_toolchain used for this build.
+write_cc_toolchain_cpu = rule(
+    implementation = _write_cc_toolchain_cpu_impl,
+    attrs = {
+        "_cc_toolchain": attr.label(default = Label("@bazel_tools//tools/cpp:current_cc_toolchain")),
+    },
+)
