diff --git a/.clang-format b/.clang-format
new file mode 100644
index 0000000000000000000000000000000000000000..4bdf24726b794b1337083bff16daa2522e9b4591
--- /dev/null
+++ b/.clang-format
@@ -0,0 +1,10 @@
+# http://clang.llvm.org/docs/ClangFormatStyleOptions.html
+BasedOnStyle: Google
+# This defaults to 'Auto'. Explicitly set it for a while, so that
+# 'vector<vector<int> >' in existing files gets formatted to
+# 'vector<vector<int>>'. ('Auto' means that clang-format will only use
+# 'int>>' if the file already contains at least one such instance.)
+Standard: Cpp11
+SortIncludes: true
+AllowShortIfStatementsOnASingleLine: false
+AllowShortLoopsOnASingleLine: false
diff --git a/.dir-locals.el b/.dir-locals.el
new file mode 100644
index 0000000000000000000000000000000000000000..7f1ebfd9eebccf48f670e6840c6ec15a8df3b479
--- /dev/null
+++ b/.dir-locals.el
@@ -0,0 +1,9 @@
+;; Copyright 2017 The Fuchsia Authors. All rights reserved.
+;; Use of this source code is governed by a BSD-style license that can be
+;; found in the LICENSE file.
+
+(
+ ;; Expand tabs as spaces.
+ (c-mode . ((indent-tabs-mode . nil)))
+ (c++-mode . ((indent-tabs-mode . nil)))
+)
diff --git a/.gitattributes b/.gitattributes
new file mode 100644
index 0000000000000000000000000000000000000000..da2e8a59e51bedfdf2be293cdf475d5107903ef1
--- /dev/null
+++ b/.gitattributes
@@ -0,0 +1,10 @@
+# Auto detect text files and perform LF normalization
+*      text=auto
+
+# Always perform LF normalization on these files
+*.c    text
+*.cc   text
+*.cpp  text
+*.h    text
+*.gn   text
+*.md   text
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000000000000000000000000000000000000..bb05aedc1b0765b4bdb972d8b60b8dd50f202c15
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,52 @@
+*~
+.*.sw?
+.checkstyle
+.cipd/
+.classpath
+.config
+.cproject
+.DS_Store
+.gdb_history
+.gdbinit
+.gn
+.idea/
+.jiri_manifest
+.jiri_root/
+.jiri/
+.landmines
+.packages
+.project
+.pydevproject
+.ssh/
+.vscode
+*.iml
+*.orig
+*.pyc
+*.sublime-project
+*.sublime-workspace
+**/Cargo.lock
+**/Cargo.toml
+/.cipd
+build/
+buildtools/
+compile_commands.json
+cscope.*
+docs/
+garnet/
+go/pkg
+infra/
+integration/
+out/
+peridot/
+prebuilt/
+scripts/
+Session.vim
+tags
+target
+third_party/
+Thumbs.db
+tools/
+tools/cipd.gni
+topaz/
+vendor/
+zircon/
diff --git a/rustfmt.toml b/rustfmt.toml
new file mode 100644
index 0000000000000000000000000000000000000000..57d9942609643f04bcad12f97f59c9af23523ee5
--- /dev/null
+++ b/rustfmt.toml
@@ -0,0 +1,15 @@
+# Fuchsia Format Style
+# last reviewed: Jan 29, 2019
+
+# Fuchsia uses 2018 edition only
+edition = "2018"
+
+# The "Default" setting has a heuristic which splits lines too aggresively.
+# We are willing to revisit this setting in future versions of rustfmt.
+# Bugs:
+#   * https://github.com/rust-lang/rustfmt/issues/3119
+#   * https://github.com/rust-lang/rustfmt/issues/3120
+use_small_heuristics = "Max"
+
+# Prevent carriage returns
+newline_style = "Unix"