diff --git a/WORKSPACE b/WORKSPACE
index b2b4485..e55c105 100644
--- a/WORKSPACE
+++ b/WORKSPACE
@@ -698,3 +698,22 @@
     ])
 )
 # end pex repos
+
+http_archive(
+    name = "com_github_gflags_gflags",
+    urls = ["https://github.com/gflags/gflags/archive/v2.2.1.tar.gz"],
+    strip_prefix = "gflags-2.2.1",
+)
+
+http_archive(
+    name = "com_google_protobuf",
+    urls = ["https://github.com/google/protobuf/archive/v3.4.1.tar.gz"],
+    strip_prefix = "protobuf-3.4.1",
+)
+
+new_http_archive(
+    name = "com_google_googletest",
+    urls = ["https://github.com/google/googletest/archive/release-1.8.0.tar.gz"],
+    strip_prefix = "googletest-release-1.8.0",
+    build_file = "third_party/gtest/gtest.BUILD",
+)
diff --git a/heron/api/tests/cpp/BUILD b/heron/api/tests/cpp/BUILD
index 7974b72..d1a94e0 100644
--- a/heron/api/tests/cpp/BUILD
+++ b/heron/api/tests/cpp/BUILD
@@ -8,7 +8,7 @@
     deps = [
         "//heron/api/src/cpp:cxx-api",
         "//heron/common/src/cpp/basics:basics-cxx",
-        "//third_party/gtest:gtest-cxx",
+        "@com_google_googletest//:gtest",
     ],
     copts = [
         "-Iheron/api/src/cpp",
diff --git a/heron/common/src/cpp/basics/BUILD b/heron/common/src/cpp/basics/BUILD
index d25e589..0c3c682 100644
--- a/heron/common/src/cpp/basics/BUILD
+++ b/heron/common/src/cpp/basics/BUILD
@@ -47,9 +47,10 @@
     deps = [
         "//config:config-cxx",
         "//third_party/glog:glog-cxx",
+        "@com_github_gflags_gflags//:gflags",
         "//third_party/gperftools:tcmalloc-cxx",
         "//third_party/kashmir:kashmir-cxx",
-        "//third_party/protobuf:protobuf-cxx",
+        "@com_google_protobuf//:protobuf",
     ] + select({
         "//tools/platform:darwin": [], 
         "//conditions:default": ["//third_party/libunwind:libunwind-cxx"],
diff --git a/heron/common/src/cpp/metrics/BUILD b/heron/common/src/cpp/metrics/BUILD
index f3eefeb..e7663a1 100644
--- a/heron/common/src/cpp/metrics/BUILD
+++ b/heron/common/src/cpp/metrics/BUILD
@@ -39,7 +39,7 @@
         "//heron/common/src/cpp/network:network-cxx",
         "//heron/common/src/cpp/config:config-cxx",
         "//third_party/glog:glog-cxx",
-        "//third_party/protobuf:protobuf-cxx",
+        "@com_google_protobuf//:protobuf",
     ],
     linkstatic = 1,
 )
diff --git a/heron/common/tests/cpp/basics/BUILD b/heron/common/tests/cpp/basics/BUILD
index e4f897a..ec5ce92 100644
--- a/heron/common/tests/cpp/basics/BUILD
+++ b/heron/common/tests/cpp/basics/BUILD
@@ -5,7 +5,7 @@
     srcs = ["fileutils_unittest.cpp"],
     deps = [
         "//heron/common/src/cpp/basics:basics-cxx",
-        "//third_party/gtest:gtest-cxx",
+        "@com_google_googletest//:gtest",
     ],
     copts = [
         "-I.",
@@ -20,7 +20,7 @@
     srcs = ["rid_unittest.cpp"],
     deps = [
         "//heron/common/src/cpp/basics:basics-cxx",
-        "//third_party/gtest:gtest-cxx",
+        "@com_google_googletest//:gtest",
     ],
     copts = [
         "-I.",
@@ -35,7 +35,7 @@
     srcs = ["strutils_unittest.cpp"],
     deps = [
         "//heron/common/src/cpp/basics:basics-cxx",
-        "//third_party/gtest:gtest-cxx",
+        "@com_google_googletest//:gtest",
     ],
     copts = [
         "-I.",
@@ -50,7 +50,7 @@
     srcs = ["utils_unittest.cpp"],
     deps = [
         "//heron/common/src/cpp/basics:basics-cxx",
-        "//third_party/gtest:gtest-cxx",
+        "@com_google_googletest//:gtest",
     ],
     copts = [
         "-I.",
diff --git a/heron/common/tests/cpp/errors/BUILD b/heron/common/tests/cpp/errors/BUILD
index 40611ac..39fa327 100644
--- a/heron/common/tests/cpp/errors/BUILD
+++ b/heron/common/tests/cpp/errors/BUILD
@@ -39,7 +39,7 @@
     ],
     deps = [
         "//heron/common/src/cpp/errors:errors-cxx",
-        "//third_party/gtest:gtest-cxx",
+        "@com_google_googletest//:gtest",
     ],
     copts = [
         "-I.",
@@ -61,7 +61,7 @@
     ],
     deps = [
         "//heron/common/src/cpp/errors:errors-cxx",
-        "//third_party/gtest:gtest-cxx",
+        "@com_google_googletest//:gtest",
     ],
     copts = [
         "-I.",
@@ -83,7 +83,7 @@
     ],
     deps = [
         "//heron/common/src/cpp/errors:errors-cxx",
-        "//third_party/gtest:gtest-cxx",
+        "@com_google_googletest//:gtest",
     ],
     copts = [
         "-I.",
diff --git a/heron/common/tests/cpp/metrics/BUILD b/heron/common/tests/cpp/metrics/BUILD
index 12ba596..41dc251 100644
--- a/heron/common/tests/cpp/metrics/BUILD
+++ b/heron/common/tests/cpp/metrics/BUILD
@@ -7,7 +7,7 @@
     ],
     deps = [
         "//heron/common/src/cpp/metrics:metrics-cxx",
-        "//third_party/gtest:gtest-cxx",
+        "@com_google_googletest//:gtest",
     ],
     copts = [
         "-Iheron",
@@ -26,7 +26,7 @@
     ],
     deps = [
         "//heron/common/src/cpp/metrics:metrics-cxx",
-        "//third_party/gtest:gtest-cxx",
+        "@com_google_googletest//:gtest",
     ],
     copts = [
         "-Iheron",
@@ -45,7 +45,7 @@
     ],
     deps = [
         "//heron/common/src/cpp/metrics:metrics-cxx",
-        "//third_party/gtest:gtest-cxx",
+        "@com_google_googletest//:gtest",
     ],
     copts = [
         "-Iheron",
@@ -64,7 +64,7 @@
     ],
     deps = [
         "//heron/common/src/cpp/metrics:metrics-cxx",
-        "//third_party/gtest:gtest-cxx",
+        "@com_google_googletest//:gtest",
     ],
     copts = [
         "-Iheron",
@@ -83,7 +83,7 @@
     ],
     deps = [
         "//heron/common/src/cpp/metrics:metrics-cxx",
-        "//third_party/gtest:gtest-cxx",
+        "@com_google_googletest//:gtest",
     ],
     copts = [
         "-Iheron",
diff --git a/heron/common/tests/cpp/network/BUILD b/heron/common/tests/cpp/network/BUILD
index ddaf4fc..44826da 100644
--- a/heron/common/tests/cpp/network/BUILD
+++ b/heron/common/tests/cpp/network/BUILD
@@ -21,7 +21,7 @@
     ],
     deps = [
         "//heron/common/src/cpp/network:network-cxx",
-        "//third_party/gtest:gtest-cxx",
+        "@com_google_googletest//:gtest",
     ],
     copts = [
         "-Iheron/common/src/cpp",
@@ -47,7 +47,7 @@
     deps = [
         ":proto_unittests_cc",
         "//heron/common/src/cpp/network:network-cxx",
-        "//third_party/gtest:gtest-cxx",
+        "@com_google_googletest//:gtest",
     ],
     copts = [
         "-Iheron/common/src/cpp",
@@ -67,7 +67,7 @@
     deps = [
         ":proto_unittests_cc",
         "//heron/common/src/cpp/network:network-cxx",
-        "//third_party/gtest:gtest-cxx",
+        "@com_google_googletest//:gtest",
     ],
     copts = [
         "-Iheron/common/src/cpp",
@@ -92,7 +92,7 @@
     deps = [
         ":proto_unittests_cc",
         "//heron/common/src/cpp/network:network-cxx",
-        "//third_party/gtest:gtest-cxx",
+        "@com_google_googletest//:gtest",
     ],
     copts = [
         "-Iheron/common/src/cpp",
@@ -111,7 +111,7 @@
     ],
     deps = [
         "//heron/common/src/cpp/network:network-cxx",
-        "//third_party/gtest:gtest-cxx",
+        "@com_google_googletest//:gtest",
     ],
     copts = [
         "-Iheron/common/src/cpp",
diff --git a/heron/common/tests/cpp/threads/BUILD b/heron/common/tests/cpp/threads/BUILD
index c169c7c..b5c4da5 100644
--- a/heron/common/tests/cpp/threads/BUILD
+++ b/heron/common/tests/cpp/threads/BUILD
@@ -5,7 +5,7 @@
     srcs = ["spcountdownlatch_unittest.cpp"],
     deps = [
         "//heron/common/src/cpp/threads:threads-cxx",
-        "//third_party/gtest:gtest-cxx",
+        "@com_google_googletest//:gtest",
     ],
     copts = [
         "-Iheron/common/src/cpp",
diff --git a/heron/proto/BUILD b/heron/proto/BUILD
index b4ce271..67deeff 100644
--- a/heron/proto/BUILD
+++ b/heron/proto/BUILD
@@ -232,7 +232,7 @@
         ":proto_topology_cc",
         ":proto_stats_cc",
         ":proto_common_cc",
-        "//third_party/protobuf:protobuf-cxx",
+        "@com_google_protobuf//:protobuf",
     ],
     linkstatic = 1,
 )
diff --git a/heron/statemgrs/tests/cpp/BUILD b/heron/statemgrs/tests/cpp/BUILD
index b853a88..54d3515 100644
--- a/heron/statemgrs/tests/cpp/BUILD
+++ b/heron/statemgrs/tests/cpp/BUILD
@@ -7,8 +7,7 @@
     ],
     deps = [
         "//heron/statemgrs/src/cpp:statemgrs-cxx",
-        "//third_party/gtest:gmock-cxx",
-        "//third_party/gtest:gtest-cxx",
+        "@com_google_googletest//:gtest",
     ],
     copts = [
         "-Iheron",
diff --git a/heron/stmgr/tests/cpp/grouping/BUILD b/heron/stmgr/tests/cpp/grouping/BUILD
index e41eead..79c03b3 100644
--- a/heron/stmgr/tests/cpp/grouping/BUILD
+++ b/heron/stmgr/tests/cpp/grouping/BUILD
@@ -7,7 +7,7 @@
     ],
     deps = [
         "//heron/stmgr/src/cpp:grouping-cxx",
-        "//third_party/gtest:gtest-cxx",
+        "@com_google_googletest//:gtest",
     ],
     copts = [
         "-Iheron",
@@ -27,7 +27,7 @@
     ],
     deps = [
         "//heron/stmgr/src/cpp:grouping-cxx",
-        "//third_party/gtest:gtest-cxx",
+        "@com_google_googletest//:gtest",
     ],
     copts = [
         "-Iheron",
@@ -47,7 +47,7 @@
     ],
     deps = [
         "//heron/stmgr/src/cpp:grouping-cxx",
-        "//third_party/gtest:gtest-cxx",
+        "@com_google_googletest//:gtest",
     ],
     copts = [
         "-Iheron",
@@ -67,7 +67,7 @@
     ],
     deps = [
         "//heron/stmgr/src/cpp:grouping-cxx",
-        "//third_party/gtest:gtest-cxx",
+        "@com_google_googletest//:gtest",
     ],
     copts = [
         "-Iheron",
@@ -87,7 +87,7 @@
     ],
     deps = [
         "//heron/stmgr/src/cpp:grouping-cxx",
-        "//third_party/gtest:gtest-cxx",
+        "@com_google_googletest//:gtest",
     ],
     copts = [
         "-Iheron",
diff --git a/heron/stmgr/tests/cpp/server/BUILD b/heron/stmgr/tests/cpp/server/BUILD
index 1b0fe7a..b26d5d1 100644
--- a/heron/stmgr/tests/cpp/server/BUILD
+++ b/heron/stmgr/tests/cpp/server/BUILD
@@ -19,7 +19,7 @@
         "//heron/stmgr/src/cpp:util-cxx",
         # TODO: Stmgr unit tests should not depend on tmaster
         "//heron/tmaster/src/cpp:tmaster-cxx",
-        "//third_party/gtest:gtest-cxx",
+        "@com_google_googletest//:gtest",
     ],
     data = [
         "//heron/config/src/yaml:test-config-internals-yaml",
@@ -48,7 +48,7 @@
         "//heron/stmgr/src/cpp:manager-cxx",
         "//heron/stmgr/src/cpp:grouping-cxx",
         "//heron/stmgr/src/cpp:util-cxx",
-        "//third_party/gtest:gtest-cxx",
+        "@com_google_googletest//:gtest",
     ],
     copts = [
         "-Iheron",
@@ -78,7 +78,7 @@
         "//heron/stmgr/src/cpp:manager-cxx",
         "//heron/stmgr/src/cpp:grouping-cxx",
         "//heron/stmgr/src/cpp:util-cxx",
-        "//third_party/gtest:gtest-cxx",
+        "@com_google_googletest//:gtest",
     ],
     data = ["//heron/config/src/yaml:test-config-internals-yaml"],
     copts = [
diff --git a/heron/stmgr/tests/cpp/util/BUILD b/heron/stmgr/tests/cpp/util/BUILD
index 2719c33..96c269a 100644
--- a/heron/stmgr/tests/cpp/util/BUILD
+++ b/heron/stmgr/tests/cpp/util/BUILD
@@ -7,7 +7,7 @@
     ],
     deps = [
         "//heron/stmgr/src/cpp:util-cxx",
-        "//third_party/gtest:gtest-cxx",
+        "@com_google_googletest//:gtest",
     ],
     copts = [
         "-Iheron",
@@ -28,7 +28,7 @@
     ],
     deps = [
         "//heron/stmgr/src/cpp:util-cxx",
-        "//third_party/gtest:gtest-cxx",
+        "@com_google_googletest//:gtest",
     ],
     data = ["//heron/config/src/yaml:test-config-internals-yaml"],
     copts = [
@@ -50,7 +50,7 @@
     ],
     deps = [
         "//heron/stmgr/src/cpp:util-cxx",
-        "//third_party/gtest:gtest-cxx",
+        "@com_google_googletest//:gtest",
     ],
     data = ["//heron/config/src/yaml:test-config-internals-yaml"],
     copts = [
@@ -73,7 +73,7 @@
         "//heron/stmgr/src/cpp:manager-cxx",
         "//heron/stmgr/src/cpp:grouping-cxx",
         "//heron/stmgr/src/cpp:util-cxx",
-        "//third_party/gtest:gtest-cxx",
+        "@com_google_googletest//:gtest",
     ],
     copts = [
         "-Iheron",
diff --git a/heron/tmaster/tests/cpp/server/BUILD b/heron/tmaster/tests/cpp/server/BUILD
index e0d37d2..da046de 100644
--- a/heron/tmaster/tests/cpp/server/BUILD
+++ b/heron/tmaster/tests/cpp/server/BUILD
@@ -11,7 +11,7 @@
     deps = [
         "//heron/stmgr/src/cpp:manager-cxx",
         "//heron/tmaster/src/cpp:tmaster-cxx",
-        "//third_party/gtest:gtest-cxx",
+        "@com_google_googletest//:gtest",
     ],
     data = [
         "//heron/config/src/yaml:test-config-internals-yaml",
@@ -39,7 +39,7 @@
     deps = [
         "//heron/stmgr/src/cpp:manager-cxx",
         "//heron/tmaster/src/cpp:tmaster-cxx",
-        "//third_party/gtest:gtest-cxx",
+        "@com_google_googletest//:gtest",
     ],
     copts = [
         "-Iheron",
@@ -67,7 +67,7 @@
     ],
     deps = [
         "//heron/tmaster/src/cpp:tmaster-cxx",
-        "//third_party/gtest:gtest-cxx",
+        "@com_google_googletest//:gtest",
     ],
     copts = [
         "-Iheron",
@@ -81,4 +81,4 @@
     size = "small",
     flaky = 1,
     linkstatic = 1,
-)
\ No newline at end of file
+)
diff --git a/third_party/gflags/BUILD b/third_party/gflags/BUILD
deleted file mode 100644
index 094cef1..0000000
--- a/third_party/gflags/BUILD
+++ /dev/null
@@ -1,65 +0,0 @@
-licenses(["notice"])
-
-package(default_visibility = ["//visibility:public"])
-
-pkg_name = "gflags"
-pkg_version = "2.2.1"
-
-package_file = pkg_name + "-" + pkg_version + ".tar.gz"
-package_dir = pkg_name + "-" + pkg_version
-
-include_files = [
-    "include/gflags/gflags.h",
-    "include/gflags/gflags_completions.h",
-    "include/gflags/gflags_declare.h",
-    "include/gflags/gflags_gflags.h",
-]
-
-lib_files = [
-    "lib/libgflags.a",
-    "lib/libgflags_nothreads.a",
-]
-
-genrule(
-    name = "gflags-srcs",
-    srcs = [package_file],
-    outs = include_files + lib_files,
-    cmd = "\n".join([
-        'export INSTALL_DIR=$$(pwd)/$(@D)',
-        'export TMP_DIR=$$(mktemp -d -t gflags.XXXXX)',
-        'mkdir -p $$TMP_DIR',
-        'cp -R $(SRCS) $$TMP_DIR',
-        'cd $$TMP_DIR',
-        'tar xfz ' + package_file,
-        'cd ' + package_dir,
-        'cmake -DCMAKE_INSTALL_PREFIX:PATH=$$INSTALL_DIR .',
-        'make install',
-        'rm -rf $$TMP_DIR',
-    ]),
-)
-
-
-cc_library(
-    name = "gflags-cxx",
-    srcs = [
-        "empty.cc",
-        "lib/libgflags.a",
-    ],
-    hdrs = include_files,
-    includes = [
-        "include",
-    ],
-    linkstatic = 1,
-)
-
-filegroup(
-    name = "gflags",
-    srcs = [
-        ":gflags-cxx",
-    ]
-)
-
-filegroup(
-    name = "gflags-files",
-    srcs = include_files + lib_files,
-)
diff --git a/third_party/gflags/empty.cc b/third_party/gflags/empty.cc
deleted file mode 100644
index b890e73..0000000
--- a/third_party/gflags/empty.cc
+++ /dev/null
@@ -1,2 +0,0 @@
-void _empty_gflags_xyz() {
-}
diff --git a/third_party/gflags/gflags-2.2.1.tar.gz b/third_party/gflags/gflags-2.2.1.tar.gz
deleted file mode 100644
index 9c5a6b9..0000000
--- a/third_party/gflags/gflags-2.2.1.tar.gz
+++ /dev/null
Binary files differ
diff --git a/third_party/glog/BUILD b/third_party/glog/BUILD
index f2d681c..870a4cf 100644
--- a/third_party/glog/BUILD
+++ b/third_party/glog/BUILD
@@ -65,9 +65,6 @@
 cc_library(
     name = "glog-cxx",
     srcs = ["empty.cc"] + lib_files,
-    deps = [
-      "//third_party/gflags:gflags-cxx",
-    ],
     hdrs = include_files,
     includes = [
         "include",
diff --git a/third_party/gtest/BUILD b/third_party/gtest/BUILD
deleted file mode 100644
index baca57d..0000000
--- a/third_party/gtest/BUILD
+++ /dev/null
@@ -1,177 +0,0 @@
-licenses(["notice"])
-
-package(default_visibility = ["//visibility:public"])
-
-pkg_name = "googletest-release"
-pkg_version = "1.8.0"
-
-package_file = pkg_name + "-" + pkg_version + ".zip"
-package_dir = pkg_name + "-" + pkg_version
-
-gtest_include_files = [
-    "include/gtest/gtest-death-test.h",
-    "include/gtest/gtest-param-test.h.pump",
-    "include/gtest/gtest-test-part.h",
-    "include/gtest/gtest_pred_impl.h",
-    "include/gtest/gtest-message.h",
-    "include/gtest/gtest-printers.h",
-    "include/gtest/gtest-typed-test.h",
-    "include/gtest/gtest_prod.h",
-    "include/gtest/gtest-param-test.h",
-    "include/gtest/gtest-spi.h",
-    "include/gtest/gtest.h",
-
-    "include/gtest/internal/custom/gtest-port.h",
-    "include/gtest/internal/custom/gtest-printers.h",
-    "include/gtest/internal/custom/gtest.h",
-
-    "include/gtest/internal/gtest-death-test-internal.h",
-    "include/gtest/internal/gtest-param-util-generated.h.pump",
-    "include/gtest/internal/gtest-tuple.h.pump",
-    "include/gtest/internal/gtest-filepath.h",
-    "include/gtest/internal/gtest-param-util.h",
-    "include/gtest/internal/gtest-type-util.h",
-    "include/gtest/internal/gtest-internal.h",
-    "include/gtest/internal/gtest-port.h",
-    "include/gtest/internal/gtest-port-arch.h",
-    "include/gtest/internal/gtest-type-util.h.pump",
-    "include/gtest/internal/gtest-linked_ptr.h",
-    "include/gtest/internal/gtest-string.h",
-    "include/gtest/internal/gtest-param-util-generated.h",
-    "include/gtest/internal/gtest-tuple.h",
-]
-
-gtest_lib_files = [
-    "lib/libgtest.a", 
-    "lib/libgtest_main.a",
-]
-
-gmock_include_files = [
-    "include/gmock/gmock-actions.h",
-    "include/gmock/gmock-generated-function-mockers.h.pump",
-    "include/gmock/gmock-matchers.h",
-    "include/gmock/gmock-cardinalities.h",
-    "include/gmock/gmock-generated-matchers.h",
-    "include/gmock/gmock-more-actions.h",
-    "include/gmock/gmock-generated-actions.h",
-    "include/gmock/gmock-generated-matchers.h.pump",
-    "include/gmock/gmock-more-matchers.h",
-    "include/gmock/gmock-generated-actions.h.pump",
-    "include/gmock/gmock-generated-nice-strict.h",
-    "include/gmock/gmock-spec-builders.h",
-    "include/gmock/gmock-generated-function-mockers.h",
-    "include/gmock/gmock-generated-nice-strict.h.pump",
-    "include/gmock/gmock.h",
-
-    "include/gmock/internal/custom/gmock-generated-actions.h",
-    "include/gmock/internal/custom/gmock-generated-actions.h.pump",
-    "include/gmock/internal/custom/gmock-matchers.h",
-    "include/gmock/internal/custom/gmock-port.h",
-
-    "include/gmock/internal/gmock-generated-internal-utils.h",
-    "include/gmock/internal/gmock-internal-utils.h",
-    "include/gmock/internal/gmock-generated-internal-utils.h.pump",
-    "include/gmock/internal/gmock-port.h",
-]
-
-gmock_lib_files = [
-    "lib/libgmock.a",
-    "lib/libgmock_main.a",
-]
-
-include_files = gtest_include_files + gmock_include_files
-lib_files = gtest_lib_files + gmock_lib_files
-
-genrule(
-    name = "gtest-srcs",
-    srcs = [
-        package_file, 
-    ],
-    outs = include_files + lib_files,
-    cmd = "\n".join([
-        'export TMP_DIR=$$(mktemp -d -t gtest.XXXXX)',
-        'export INSTALL_DIR=$$(pwd)/$(@D)',
-        'mkdir -p $$TMP_DIR',
-        'cp -R $(SRCS) $$TMP_DIR',
-        'cd $$TMP_DIR',
-        'unzip -q -o ' + package_file,
-        'cd ' + package_dir,
-        'cmake -DCMAKE_INSTALL_PREFIX:PATH=$$INSTALL_DIR .',
-        'make install',
-        'rm -rf $$TMP_DIR',
-    ]),
-)
-
-cc_library(
-    name = "gtest-cxx",
-    srcs = [
-        "empty.cc",
-        "lib/libgtest.a",
-    ],
-    hdrs = gtest_include_files,
-    includes = [
-        "include",
-    ],
-    linkstatic = 1,
-)
-
-cc_library(
-    name = "gtest_main-cxx",
-    srcs = [
-        "empty.cc",
-        "lib/libgtest_main.a",
-    ],
-    deps = [
-        ":gtest-cxx",
-    ],
-    linkstatic = 1,
-    alwayslink = 1,
-)
-
-filegroup(
-    name = "gtest",
-    srcs = [
-        ":gtest-cxx",
-        ":gtest_main-cxx",
-    ]
-)
-
-filegroup(
-    name = "gtest-files",
-    srcs = gtest_include_files + gtest_lib_files,
-)
-
-cc_library(
-    name = "gmock-cxx",
-    srcs = [
-        "empty.cc",
-        "lib/libgmock.a",
-    ],
-    hdrs = gmock_include_files,
-    includes = [
-        "include",
-    ],
-    linkstatic = 1,
-)
-
-cc_library(
-    name = "gmock_main-cxx",
-    srcs = [
-        "empty.cc",
-        "lib/libgmock_main.a",
-    ],
-    linkstatic = 1,
-)
-
-filegroup(
-    name = "gmock",
-    srcs = [
-        ":gmock-cxx",
-        ":gmock_main-cxx",
-    ]
-)
-
-filegroup(
-    name = "gmock-files",
-    srcs = gmock_include_files + gmock_lib_files,
-)
diff --git a/third_party/gtest/empty.cc b/third_party/gtest/empty.cc
deleted file mode 100644
index 186c342..0000000
--- a/third_party/gtest/empty.cc
+++ /dev/null
@@ -1,2 +0,0 @@
-void _empty_gtest_xyz() {
-}
diff --git a/third_party/gtest/googletest-release-1.8.0.zip b/third_party/gtest/googletest-release-1.8.0.zip
deleted file mode 100644
index ee1136a..0000000
--- a/third_party/gtest/googletest-release-1.8.0.zip
+++ /dev/null
Binary files differ
diff --git a/third_party/gtest/gtest.BUILD b/third_party/gtest/gtest.BUILD
new file mode 100644
index 0000000..81ac254
--- /dev/null
+++ b/third_party/gtest/gtest.BUILD
@@ -0,0 +1,130 @@
+# Copyright 2017 Google Inc. 
+# All Rights Reserved.
+#
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are
+# met:
+#
+#     * Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#     * Redistributions in binary form must reproduce the above
+# copyright notice, this list of conditions and the following disclaimer
+# in the documentation and/or other materials provided with the
+# distribution.
+#     * Neither the name of Google Inc. nor the names of its
+# contributors may be used to endorse or promote products derived from
+# this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+#
+# Author: misterg@google.com (Gennadiy Civil)
+#
+#   Bazel Build for Google C++ Testing Framework(Google Test)
+
+package(default_visibility = ["//visibility:public"])
+
+licenses(["notice"])
+
+# Google Test including Google Mock 
+cc_library(
+    name = "gtest",
+    srcs = glob(
+        include = [
+            "googletest/src/*.cc",
+            "googletest/src/*.h",
+            "googletest/include/gtest/**/*.h",
+            "googlemock/src/*.cc",
+            "googlemock/include/gmock/**/*.h",
+        ],
+        exclude = [
+            "googletest/src/gtest-all.cc",
+            "googletest/src/gtest_main.cc",
+            "googlemock/src/gmock-all.cc",
+            "googlemock/src/gmock_main.cc",
+        ],
+    ),
+    hdrs =glob([
+        "googletest/include/gtest/*.h",
+        "googlemock/include/gmock/*.h",
+    ]),
+    includes = [
+        "googlemock",
+        "googlemock/include",
+        "googletest",
+        "googletest/include",
+    ],
+)
+
+cc_library(
+    name = "gtest_main",
+    srcs = [
+        "googlemock/src/gmock_main.cc",
+    ],
+    deps = ["//:gtest"],
+)
+
+# The following rules build samples of how to use gTest.
+cc_library(
+    name = "gtest_sample_lib",
+    srcs = [
+        "googletest/samples/sample1.cc",
+        "googletest/samples/sample2.cc",
+        "googletest/samples/sample4.cc",
+    ],
+    hdrs = [
+        "googletest/samples/prime_tables.h",
+        "googletest/samples/sample1.h",
+        "googletest/samples/sample2.h",
+        "googletest/samples/sample3-inl.h",
+        "googletest/samples/sample4.h",
+    ],
+)
+
+cc_test(
+    name = "gtest_samples",
+    size = "small",
+    #All Samples except:
+    #sample9 ( main )
+    #sample10 (main and takes a command line option and needs to be separate)
+    srcs = [
+        "googletest/samples/sample1_unittest.cc",
+        "googletest/samples/sample2_unittest.cc",
+        "googletest/samples/sample3_unittest.cc",
+        "googletest/samples/sample4_unittest.cc",
+        "googletest/samples/sample5_unittest.cc",
+        "googletest/samples/sample6_unittest.cc",
+        "googletest/samples/sample7_unittest.cc",
+        "googletest/samples/sample8_unittest.cc",
+    ],
+    deps = [
+        "gtest_sample_lib",
+        ":gtest_main",
+    ],
+)
+
+cc_test(
+    name = "sample9_unittest",
+    size = "small",
+    srcs = ["googletest/samples/sample9_unittest.cc"],
+    deps = [":gtest"],
+)
+
+cc_test(
+    name = "sample10_unittest",
+    size = "small",
+    srcs = ["googletest/samples/sample10_unittest.cc"],
+    deps = [
+        ":gtest",
+    ],
+)
diff --git a/third_party/protobuf/BUILD b/third_party/protobuf/BUILD
deleted file mode 100644
index 2903a0f..0000000
--- a/third_party/protobuf/BUILD
+++ /dev/null
@@ -1,210 +0,0 @@
-licenses(["notice"])
-
-package(default_visibility = ["//visibility:public"])
-
-pkg_name = "protobuf"
-pkg_version = "3.4.0"
-
-pkg_file = pkg_name + "-" + pkg_version + ".tar.gz"
-pkg_dir = pkg_name + "-" + pkg_version
-pkg_patch = pkg_name + "-" + pkg_version + ".patch"
-
-gmock_name = "gmock"
-gmock_version = "1.7.0"
-gmock_file = gmock_name + "-" + gmock_version + ".zip"
-gmock_dir = gmock_name + "-" + gmock_version
-
-genrule(
-    name = "protobuf-srcs",
-    srcs = [pkg_file, pkg_patch, gmock_file],
-    outs = [
-        "bin/protoc",
-
-        "include/google/protobuf/arena.h",
-        "include/google/protobuf/arenastring.h",
-        "include/google/protobuf/arena_impl.h",
-        "include/google/protobuf/has_bits.h",
-        "include/google/protobuf/stubs/atomic_sequence_num.h",
-        "include/google/protobuf/stubs/fastmem.h",
-        "include/google/protobuf/stubs/port.h",
-        "include/google/protobuf/stubs/macros.h",
-        "include/google/protobuf/stubs/logging.h",
-        "include/google/protobuf/stubs/scoped_ptr.h",
-        "include/google/protobuf/stubs/mutex.h",
-        "include/google/protobuf/stubs/callback.h",
-        "include/google/protobuf/stubs/shared_ptr.h",
-        "include/google/protobuf/stubs/hash.h",
-        "include/google/protobuf/stubs/casts.h",
-
-        "include/google/protobuf/extension_set.h",
-        "include/google/protobuf/map.h",
-        "include/google/protobuf/map_type_handler.h",
-        "include/google/protobuf/map_entry_lite.h",
-        "include/google/protobuf/metadata_lite.h",
-        "include/google/protobuf/message_lite.h",
-        "include/google/protobuf/unknown_field_set.h",
-        "include/google/protobuf/descriptor.h",
-        "include/google/protobuf/generated_enum_reflection.h",
-        "include/google/protobuf/reflection_ops.h",
-        "include/google/protobuf/wire_format.h",
-        "include/google/protobuf/descriptor.pb.h",
-        "include/google/protobuf/generated_message_reflection.h",
-        "include/google/protobuf/repeated_field.h",
-        "include/google/protobuf/wire_format_lite.h",
-        "include/google/protobuf/descriptor.proto",
-        "include/google/protobuf/generated_message_util.h",
-        "include/google/protobuf/generated_enum_util.h",
-        "include/google/protobuf/service.h",
-        "include/google/protobuf/wire_format_lite_inl.h",
-        "include/google/protobuf/descriptor_database.h",
-        "include/google/protobuf/dynamic_message.h",
-        "include/google/protobuf/message.h",
-        "include/google/protobuf/text_format.h",
-        "include/google/protobuf/metadata.h",
-        "include/google/protobuf/generated_message_table_driven.h",
-
-        "include/google/protobuf/compiler/code_generator.h",
-        "include/google/protobuf/compiler/command_line_interface.h",
-        "include/google/protobuf/compiler/importer.h",
-        "include/google/protobuf/compiler/parser.h",
-        "include/google/protobuf/compiler/plugin.h",
-        "include/google/protobuf/compiler/plugin.pb.h",
-        "include/google/protobuf/compiler/plugin.proto",
-
-        "include/google/protobuf/compiler/cpp/cpp_generator.h",
-        "include/google/protobuf/compiler/java/java_generator.h",
-        "include/google/protobuf/compiler/python/python_generator.h",
-
-        "include/google/protobuf/io/coded_stream.h",
-        "include/google/protobuf/io/gzip_stream.h",
-        "include/google/protobuf/io/printer.h",
-        "include/google/protobuf/io/tokenizer.h",
-        "include/google/protobuf/io/zero_copy_stream.h",
-        "include/google/protobuf/io/zero_copy_stream_impl.h",
-        "include/google/protobuf/io/zero_copy_stream_impl_lite.h",
-
-        "include/google/protobuf/stubs/atomicops.h",
-        "include/google/protobuf/stubs/atomicops_internals_mips_gcc.h",
-        "include/google/protobuf/stubs/once.h",
-        "include/google/protobuf/stubs/atomicops_internals_arm_gcc.h",
-        "include/google/protobuf/stubs/platform_macros.h",
-        "include/google/protobuf/stubs/atomicops_internals_arm_qnx.h",
-        "include/google/protobuf/stubs/atomicops_internals_x86_gcc.h",
-        "include/google/protobuf/stubs/template_util.h",
-        "include/google/protobuf/stubs/atomicops_internals_atomicword_compat.h",
-        "include/google/protobuf/stubs/atomicops_internals_x86_msvc.h",
-        "include/google/protobuf/stubs/type_traits.h",
-        "include/google/protobuf/stubs/common.h",
-
-        "lib/libprotobuf-lite.a",
-        "lib/libprotobuf.a",
-        "lib/libprotoc.a",
-    ],
-    cmd = "\n".join([
-        "export INSTALL_DIR=$$(pwd)/$(@D)",
-        "export TMP_DIR=$$(mktemp -d -t protobuf.XXXXX)",
-        "mkdir -p $$TMP_DIR",
-        "cp -R $(SRCS) $$TMP_DIR",
-        "cd $$TMP_DIR",
-        "tar xfz " + pkg_file,
-        "patch -d " + pkg_dir + " -p1 < " + pkg_patch,
-        "cd " + pkg_dir,
-        "unzip -q -o " + "../" + gmock_file,
-        "mv " + gmock_dir + " gmock",
-        "./autogen.sh",
-        "./configure --prefix=$$INSTALL_DIR --enable-shared=no",
-        "make install",
-        "rm -rf $$TMP_DIR",
-    ]),
-)
-
-cc_library(
-    name = "protobuf-cxx-lite",
-    srcs = [
-        "empty.cc",
-        "lib/libprotobuf-lite.a",
-    ],
-    hdrs = [
-        "include/google/protobuf/message_lite.h",
-    ],
-    includes = ["include"],
-    linkstatic = 1,
-)
-
-cc_library(
-    name = "protobuf-cxx",
-    srcs = [
-        "include/google/protobuf/descriptor.pb.h",
-        "include/google/protobuf/generated_enum_reflection.h",
-
-        "include/google/protobuf/stubs/atomicops.h",
-        "include/google/protobuf/stubs/atomicops_internals_x86_gcc.h",
-        "include/google/protobuf/stubs/atomicops_internals_atomicword_compat.h",
-        "include/google/protobuf/stubs/platform_macros.h",
-        "include/google/protobuf/stubs/type_traits.h",
-        "include/google/protobuf/stubs/template_util.h",
-
-        "empty.cc",
-        "lib/libprotobuf.a",
-    ],
-    hdrs = [
-        "include/google/protobuf/arena.h",
-        "include/google/protobuf/arenastring.h",
-        "include/google/protobuf/arena_impl.h",
-        "include/google/protobuf/has_bits.h",
-        "include/google/protobuf/stubs/atomic_sequence_num.h",
-        "include/google/protobuf/stubs/common.h",
-        "include/google/protobuf/stubs/fastmem.h",
-        "include/google/protobuf/stubs/hash.h",
-        "include/google/protobuf/stubs/once.h",
-        "include/google/protobuf/stubs/port.h",
-        "include/google/protobuf/stubs/macros.h",
-        "include/google/protobuf/stubs/logging.h",
-        "include/google/protobuf/stubs/scoped_ptr.h",
-        "include/google/protobuf/stubs/mutex.h",
-        "include/google/protobuf/stubs/callback.h",
-        "include/google/protobuf/stubs/shared_ptr.h",
-        "include/google/protobuf/stubs/casts.h",
-
-        "include/google/protobuf/descriptor.h",
-        "include/google/protobuf/extension_set.h",
-        "include/google/protobuf/generated_enum_util.h",
-        "include/google/protobuf/generated_message_util.h",
-        "include/google/protobuf/generated_message_reflection.h",
-        "include/google/protobuf/generated_message_table_driven.h",
-        "include/google/protobuf/map.h",
-        "include/google/protobuf/map_entry_lite.h",
-        "include/google/protobuf/map_type_handler.h",
-        "include/google/protobuf/message.h",
-        "include/google/protobuf/message_lite.h",
-        "include/google/protobuf/metadata.h",
-        "include/google/protobuf/metadata_lite.h",
-        "include/google/protobuf/reflection_ops.h",
-        "include/google/protobuf/repeated_field.h",
-        "include/google/protobuf/unknown_field_set.h",
-        "include/google/protobuf/wire_format.h",
-        "include/google/protobuf/wire_format_lite.h",
-        "include/google/protobuf/wire_format_lite_inl.h",
-
-        "include/google/protobuf/io/coded_stream.h",
-    ],
-    includes = [
-        "include",
-    ],
-    linkstatic = 1,
-)
-
-cc_library(
-    name = "protoc-cxx",
-    srcs = [
-        "empty.cc",
-        "lib/libprotoc.a",
-    ],
-    deps = [":protobuf-cxx", ":gtest-cxx"],
-    linkstatic = 1,
-)
-
-filegroup(
-    name = "protoc",
-    srcs = ["bin/protoc"]
-)
diff --git a/third_party/protobuf/empty.cc b/third_party/protobuf/empty.cc
deleted file mode 100644
index e2b1d40..0000000
--- a/third_party/protobuf/empty.cc
+++ /dev/null
@@ -1,2 +0,0 @@
-void _empty_protobuf_xyz() {
-}
diff --git a/third_party/protobuf/gmock-1.7.0.zip b/third_party/protobuf/gmock-1.7.0.zip
deleted file mode 100644
index 2f0edb9..0000000
--- a/third_party/protobuf/gmock-1.7.0.zip
+++ /dev/null
Binary files differ
diff --git a/third_party/protobuf/protobuf-3.4.0.patch b/third_party/protobuf/protobuf-3.4.0.patch
deleted file mode 100644
index 6be277d..0000000
--- a/third_party/protobuf/protobuf-3.4.0.patch
+++ /dev/null
@@ -1,295 +0,0 @@
-diff -rup protobuf-3.4.0.orig/configure.ac protobuf-3.4.0/configure.ac
---- protobuf-3.4.0.orig/configure.ac	2017-09-17 16:34:26.000000000 -0700
-+++ protobuf-3.4.0/configure.ac	2017-09-17 16:46:57.000000000 -0700
-@@ -65,7 +65,6 @@ AC_LANG([C++])
- ACX_USE_SYSTEM_EXTENSIONS
- m4_ifdef([AM_PROG_AR], [AM_PROG_AR])
- AM_CONDITIONAL(GCC, test "$GCC" = yes)   # let the Makefile know if we're gcc
--AC_PROG_OBJC
- 
- # test_util.cc takes forever to compile with GCC and optimization turned on.
- AC_MSG_CHECKING([C++ compiler flags...])
-@@ -189,15 +188,6 @@ case "$target_os" in
-     ;;
- esac
- 
--# Enable ObjC support for conformance directory on OS X.
--OBJC_CONFORMANCE_TEST=0
--case "$target_os" in
--  darwin*)
--    OBJC_CONFORMANCE_TEST=1
--    ;;
--esac
--AM_CONDITIONAL([OBJC_CONFORMANCE_TEST], [test $OBJC_CONFORMANCE_TEST = 1])
--
- AX_CXX_COMPILE_STDCXX([11], [noext], [optional])
- 
- # HACK:  Make gmock's configure script pick up our copy of CFLAGS and CXXFLAGS,
-diff -rup protobuf-3.4.0.orig/conformance/Makefile.am protobuf-3.4.0/conformance/Makefile.am
---- protobuf-3.4.0.orig/conformance/Makefile.am	2017-09-17 16:34:26.000000000 -0700
-+++ protobuf-3.4.0/conformance/Makefile.am	2017-09-17 16:48:31.000000000 -0700
-@@ -24,8 +24,6 @@ protoc_outputs =                        
- 
- other_language_protoc_outputs =                                \
-   conformance_pb2.py                                           \
--  Conformance.pbobjc.h                                         \
--  Conformance.pbobjc.m                                         \
-   conformance_pb.js                                            \
-   conformance_pb.rb                                            \
-   com/google/protobuf/Any.java                                 \
-@@ -225,24 +223,6 @@ conformance_cpp_CPPFLAGS = -I$(top_srcdi
- # so a direct "make test_cpp" could fail if parallel enough.
- conformance_cpp-conformance_cpp.$(OBJEXT): conformance.pb.h
- 
--if OBJC_CONFORMANCE_TEST
--
--bin_PROGRAMS += conformance-objc
--
--conformance_objc_SOURCES = conformance_objc.m ../objectivec/GPBProtocolBuffers.m
--nodist_conformance_objc_SOURCES = Conformance.pbobjc.m google/protobuf/TestMessagesProto2.pbobjc.m google/protobuf/TestMessagesProto3.pbobjc.m
--# On travis, the build fails without the isysroot because whatever system
--# headers are being found don't include generics support for
--# NSArray/NSDictionary, the only guess is their image at one time had an odd
--# setup for Xcode and old frameworks are being found.
--conformance_objc_CPPFLAGS = -I$(top_srcdir)/objectivec -isysroot `xcrun --sdk macosx --show-sdk-path`
--conformance_objc_LDFLAGS = -framework Foundation
--# Explicit dep beacuse BUILT_SOURCES are only done before a "make all/check"
--# so a direct "make test_objc" could fail if parallel enough.
--conformance_objc-conformance_objc.$(OBJEXT): Conformance.pbobjc.h google/protobuf/TestMessagesProto2.pbobjc.h google/protobuf/TestMessagesProto3.pbobjc.h
--
--endif
--
- # JavaScript well-known types are expected to be in a directory called
- # google-protobuf, because they are usually in the google-protobuf npm
- # package.  But we want to use the sources from our tree, so we recreate
-@@ -363,9 +343,3 @@ test_python_cpp: protoc_middleman confor
- test_nodejs: protoc_middleman conformance-test-runner $(other_language_protoc_outputs)
- 	NODE_PATH=../js:. ./conformance-test-runner --enforce_recommended --failure_list failure_list_js.txt ./conformance_nodejs.js
- 
--if OBJC_CONFORMANCE_TEST
--
--test_objc: protoc_middleman conformance-test-runner conformance-objc
--	./conformance-test-runner --enforce_recommended --failure_list failure_list_objc.txt ./conformance-objc
--
--endif
-diff -rup protobuf-3.4.0.orig/conformance/conformance_objc.m protobuf-3.4.0/conformance/conformance_objc.m
---- protobuf-3.4.0.orig/conformance/conformance_objc.m	2017-09-17 16:34:26.000000000 -0700
-+++ protobuf-3.4.0/conformance/conformance_objc.m	2017-09-17 16:49:29.000000000 -0700
-@@ -1,188 +0,0 @@
--// Protocol Buffers - Google's data interchange format
--// Copyright 2015 Google Inc.  All rights reserved.
--// https://developers.google.com/protocol-buffers/
--//
--// Redistribution and use in source and binary forms, with or without
--// modification, are permitted provided that the following conditions are
--// met:
--//
--//     * Redistributions of source code must retain the above copyright
--// notice, this list of conditions and the following disclaimer.
--//     * Redistributions in binary form must reproduce the above
--// copyright notice, this list of conditions and the following disclaimer
--// in the documentation and/or other materials provided with the
--// distribution.
--//     * Neither the name of Google Inc. nor the names of its
--// contributors may be used to endorse or promote products derived from
--// this software without specific prior written permission.
--//
--// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
--// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
--// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
--// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
--// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
--// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
--// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
--// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
--// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
--// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
--// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
--
--#import <Foundation/Foundation.h>
--
--#import "Conformance.pbobjc.h"
--#import "google/protobuf/TestMessagesProto2.pbobjc.h"
--#import "google/protobuf/TestMessagesProto3.pbobjc.h"
--
--static void Die(NSString *format, ...) __dead2;
--
--static BOOL verbose = NO;
--static int32_t testCount = 0;
--
--static void Die(NSString *format, ...) {
--  va_list args;
--  va_start(args, format);
--  NSString *msg = [[NSString alloc] initWithFormat:format arguments:args];
--  NSLog(@"%@", msg);
--  va_end(args);
--  [msg release];
--  exit(66);
--}
--
--static NSData *CheckedReadDataOfLength(NSFileHandle *handle, NSUInteger numBytes) {
--  NSData *data = [handle readDataOfLength:numBytes];
--  NSUInteger dataLen = data.length;
--  if (dataLen == 0) {
--    return nil;  // EOF.
--  }
--  if (dataLen != numBytes) {
--    Die(@"Failed to read the request length (%d), only got: %@",
--        numBytes, data);
--  }
--  return data;
--}
--
--static ConformanceResponse *DoTest(ConformanceRequest *request) {
--  ConformanceResponse *response = [ConformanceResponse message];
--  GPBMessage *testMessage = nil;
--
--  switch (request.payloadOneOfCase) {
--    case ConformanceRequest_Payload_OneOfCase_GPBUnsetOneOfCase:
--      Die(@"Request didn't have a payload: %@", request);
--      break;
--
--    case ConformanceRequest_Payload_OneOfCase_ProtobufPayload: {
--      Class msgClass = nil;
--      if ([request.messageType isEqual:@"protobuf_test_messages.proto3.TestAllTypesProto3"]) {
--        msgClass = [Proto3TestAllTypesProto3 class];
--      } else if ([request.messageType isEqual:@"protobuf_test_messages.proto2.TestAllTypesProto2"]) {
--        msgClass = [TestAllTypesProto2 class];
--      } else {
--        Die(@"Protobuf request had an unknown message_type: %@", request.messageType);
--      }
--      NSError *error = nil;
--      testMessage = [msgClass parseFromData:request.protobufPayload error:&error];
--      if (!testMessage) {
--        response.parseError =
--            [NSString stringWithFormat:@"Parse error: %@", error];
--      }
--      break;
--    }
--
--    case ConformanceRequest_Payload_OneOfCase_JsonPayload:
--      response.skipped = @"ObjC doesn't support parsing JSON";
--      break;
--  }
--
--  if (testMessage) {
--    switch (request.requestedOutputFormat) {
--      case WireFormat_GPBUnrecognizedEnumeratorValue:
--      case WireFormat_Unspecified:
--        Die(@"Unrecognized/unspecified output format: %@", request);
--        break;
--
--      case WireFormat_Protobuf:
--        response.protobufPayload = testMessage.data;
--        if (!response.protobufPayload) {
--          response.serializeError =
--            [NSString stringWithFormat:@"Failed to make data from: %@", testMessage];
--        }
--        break;
--
--      case WireFormat_Json:
--        response.skipped = @"ObjC doesn't support generating JSON";
--        break;
--    }
--  }
--
--  return response;
--}
--
--static uint32_t UInt32FromLittleEndianData(NSData *data) {
--  if (data.length != sizeof(uint32_t)) {
--    Die(@"Data not the right size for uint32_t: %@", data);
--  }
--  uint32_t value;
--  memcpy(&value, data.bytes, sizeof(uint32_t));
--  return CFSwapInt32LittleToHost(value);
--}
--
--static NSData *UInt32ToLittleEndianData(uint32_t num) {
--  uint32_t value = CFSwapInt32HostToLittle(num);
--  return [NSData dataWithBytes:&value length:sizeof(uint32_t)];
--}
--
--static BOOL DoTestIo(NSFileHandle *input, NSFileHandle *output) {
--  // See conformance_test_runner.cc for the wire format.
--  NSData *data = CheckedReadDataOfLength(input, sizeof(uint32_t));
--  if (!data) {
--    // EOF.
--    return NO;
--  }
--  uint32_t numBytes = UInt32FromLittleEndianData(data);
--  data = CheckedReadDataOfLength(input, numBytes);
--  if (!data) {
--    Die(@"Failed to read request");
--  }
--
--  NSError *error = nil;
--  ConformanceRequest *request = [ConformanceRequest parseFromData:data
--                                                            error:&error];
--  if (!request) {
--    Die(@"Failed to parse the message data: %@", error);
--  }
--
--  ConformanceResponse *response = DoTest(request);
--  if (!response) {
--    Die(@"Failed to make a reply from %@", request);
--  }
--
--  data = response.data;
--  [output writeData:UInt32ToLittleEndianData((int32_t)data.length)];
--  [output writeData:data];
--
--  if (verbose) {
--    NSLog(@"Request: %@", request);
--    NSLog(@"Response: %@", response);
--  }
--
--  ++testCount;
--  return YES;
--}
--
--int main(int argc, const char *argv[]) {
--  @autoreleasepool {
--    NSFileHandle *input = [[NSFileHandle fileHandleWithStandardInput] retain];
--    NSFileHandle *output = [[NSFileHandle fileHandleWithStandardOutput] retain];
--
--    BOOL notDone = YES;
--    while (notDone) {
--      @autoreleasepool {
--        notDone = DoTestIo(input, output);
--      }
--    }
--
--    NSLog(@"Received EOF from test runner after %d tests, exiting.", testCount);
--  }
--  return 0;
--}
-diff -rup protobuf-3.4.0.orig/src/google/protobuf/io/zero_copy_stream_impl_lite.h protobuf-3.4.0/src/google/protobuf/io/zero_copy_stream_impl_lite.h
---- protobuf-3.4.0.orig/src/google/protobuf/io/zero_copy_stream_impl_lite.h	2017-09-17 16:34:27.000000000 -0700
-+++ protobuf-3.4.0/src/google/protobuf/io/zero_copy_stream_impl_lite.h	2017-09-17 16:45:58.000000000 -0700
-@@ -377,13 +377,9 @@ class LIBPROTOBUF_EXPORT CopyingOutputSt
- // return value is valid until the next time the string is resized.  We
- // trust the caller to treat the return value as an array of length s->size().
- inline char* mutable_string_data(string* s) {
--#ifdef LANG_CXX11
-   // This should be simpler & faster than string_as_array() because the latter
-   // is guaranteed to return NULL when *s is empty, so it has to check for that.
-   return &(*s)[0];
--#else
--  return string_as_array(s);
--#endif
- }
- 
- // as_string_data(s) is equivalent to
-@@ -392,11 +388,7 @@ inline char* mutable_string_data(string*
- // code can avoid that check.
- inline std::pair<char*, bool> as_string_data(string* s) {
-   char *p = mutable_string_data(s);
--#ifdef LANG_CXX11
-   return std::make_pair(p, true);
--#else
--  return std::make_pair(p, p != NULL);
--#endif
- }
- 
- }  // namespace io
diff --git a/third_party/protobuf/protobuf-3.4.0.tar.gz b/third_party/protobuf/protobuf-3.4.0.tar.gz
deleted file mode 100644
index 5431b5b..0000000
--- a/third_party/protobuf/protobuf-3.4.0.tar.gz
+++ /dev/null
Binary files differ
diff --git a/tools/java/src/com/twitter/bazel/checkstyle/CppCheckstyle.java b/tools/java/src/com/twitter/bazel/checkstyle/CppCheckstyle.java
index d1b6f87..32c6c75 100644
--- a/tools/java/src/com/twitter/bazel/checkstyle/CppCheckstyle.java
+++ b/tools/java/src/com/twitter/bazel/checkstyle/CppCheckstyle.java
@@ -131,6 +131,7 @@
     return Collections2.filter(
             cppInfo.getSourcesAndHeadersList(),
             Predicates.and(
+                    Predicates.not(Predicates.containsPattern("external/")),
                     Predicates.not(Predicates.containsPattern("third_party/")),
                     Predicates.not(Predicates.containsPattern("config/heron-config.h")),
                     Predicates.not(Predicates.containsPattern(".*pb.h$")),
diff --git a/tools/rules/genproto.bzl b/tools/rules/genproto.bzl
index 3b9a9cf..32438f3 100644
--- a/tools/rules/genproto.bzl
+++ b/tools/rules/genproto.bzl
@@ -48,7 +48,7 @@
     genproto_java_impl,
     attrs = genproto_base_attrs + {
         "_protoc": attr.label(
-            default = Label("//third_party/protobuf:protoc"),
+            default = Label("@com_google_protobuf//:protoc"),
             allow_files = True,
             single_file = True,
         ),
@@ -97,13 +97,13 @@
     proto_src = src[:-6] + ".pb.cc"
     proto_srcgen_rule = name + "_cc_src"
     proto_lib = name + "_cc"
-    protoc = "//third_party/protobuf:protoc"
+    protoc = "@com_google_protobuf//:protoc"
     if not includes:
       proto_cmd = "$(location %s) --cpp_out=$(@D) %s" % (protoc, proto_path)
     else:
       proto_cmd = "$(location %s) %s --cpp_out=$(@D) %s" % (protoc, proto_include_paths, proto_path)
 
-    cc_deps = ["//third_party/protobuf:protobuf-cxx"]
+    cc_deps = ["@com_google_protobuf//:protobuf"]
     proto_deps = [src, protoc]
     for dep in deps:
       cc_deps += [dep + "_cc"]
@@ -133,7 +133,7 @@
     proto_src = src[:-6] + "_pb2.py"
     proto_srcgen_rule = name + "_py_src"
     proto_lib = name + "_py"
-    protoc = "//third_party/protobuf:protoc"
+    protoc = "@com_google_protobuf//:protoc"
     if not includes:
       proto_cmd = "$(location %s) --python_out=$(@D) %s" % (protoc, proto_path)
     else:
diff --git a/tools/rules/newgenproto.bzl b/tools/rules/newgenproto.bzl
deleted file mode 100644
index c26bd4d..0000000
--- a/tools/rules/newgenproto.bzl
+++ /dev/null
@@ -1,149 +0,0 @@
-load("pex_rules", "pex_library")
-
-standard_proto_path = "heron/proto"
-
-def _genproto_impl(ctx):
-  proto_src_deps = [src.proto_src for src in ctx.attr.deps]
-  inputs, outputs, arguments = [ctx.file.src] + proto_src_deps, [], ["--proto_path=."]
-  for src in proto_src_deps:
-    if src.path.startswith(standard_proto_path):
-      arguments += ["--proto_path=" + standard_proto_path]
-      break
-
-  if ctx.attr.gen_cc:
-    outputs += [ctx.outputs.cc_hdr, ctx.outputs.cc_src]
-    arguments += ["--cpp_out=" + ctx.configuration.genfiles_dir.path]
-
-  if ctx.attr.gen_java:
-    if ctx.outputs.java_src.path.endswith(".srcjar"):
-      srcjar = ctx.new_file(ctx.outputs.java_src.basename[:-6] + "jar")
-    else:
-      srcjar = ctx.outputs.java_src
-    outputs += [srcjar]
-    arguments += ["--java_out=" + srcjar.path]
-
-  if ctx.attr.gen_py:
-    outputs += [ctx.outputs.py_src]
-    arguments += ["--python_out=" + ctx.configuration.genfiles_dir.path]
-
-  ctx.action(
-      mnemonic = "GenProto",
-      inputs = inputs,
-      outputs = outputs,
-      arguments = arguments + [ctx.file.src.path],
-      executable = ctx.executable._protoc)
-
-  # This is required because protoc only understands .jar extensions, but Bazel
-  # requires source JAR files end in .srcjar.
-  if ctx.attr.gen_java and srcjar != ctx.outputs.java_src:
-    ctx.action(
-        mnemonic = "FixProtoSrcJar",
-        inputs = [srcjar],
-        outputs = [ctx.outputs.java_src],
-        arguments = [srcjar.path, ctx.outputs.java_src.path],
-        command = "cp $1 $2")
-
-    # Fixup the resulting outputs to keep the source-only .jar out of the result.
-    outputs += [ctx.outputs.java_src]
-    outputs = [e for e in outputs if e != srcjar]
-
-  return struct(files=set(outputs),
-                proto_src=ctx.file.src)
-
-_genproto_attrs = {
-    "src": attr.label(
-        allow_files = FileType([".proto"]),
-        single_file = True,
-    ),
-    "deps": attr.label_list(
-        allow_files = False,
-        providers = ["proto_src"],
-    ),
-    "_protoc": attr.label(
-        default = Label("//third_party/protobuf:protoc"),
-        executable = True,
-    ),
-    "gen_cc": attr.bool(),
-    "gen_java": attr.bool(),
-    "gen_py": attr.bool(),
-}
-
-def _genproto_outputs(attrs):
-  outputs = {}
-  if attrs.gen_cc:
-    outputs += {
-        "cc_hdr": "%{src}.pb.h",
-        "cc_src": "%{src}.pb.cc"
-    }
-  if attrs.gen_java:
-    outputs += {
-        "java_src": "%{src}.srcjar",
-    }
-  if attrs.gen_py:
-    outputs += {
-        "py_src": "%{src}_pb2.py"
-    }
-  return outputs
-
-genproto = rule(
-    _genproto_impl,
-    attrs = _genproto_attrs,
-    output_to_genfiles = True,
-    outputs = _genproto_outputs,
-)
-
-def proto_library(name, src=None, deps=[], visibility=None,
-                  gen_java=False, gen_cc=False, gen_py=False):
-  if not src:
-    if name.endswith("_proto"):
-      src = name[:-6] + ".proto"
-    else:
-      src = name + ".proto"
-
-  proto_pkg = genproto(name=name,
-                       src=src,
-                       deps=deps,
-                       gen_java=gen_java,
-                       gen_cc=gen_cc,
-                       gen_py=gen_py)
-
-  # TODO(shahms): These should probably not be separate libraries, but
-  # allowing upstream *_library and *_binary targets to depend on the
-  # proto_library() directly is a challenge.  We'd also need a different
-  # workaround for the non-generated any.pb.{h,cc} from the upstream protocol
-  # buffer library.
-  if gen_java:
-    java_deps = ["@com_google_protobuf_protobuf_java//jar"]
-    for dep in deps:
-      java_deps += [dep + "_java"]
-    native.java_library(
-        name  = name + "_java",
-        srcs = [proto_pkg.label()],
-        deps = java_deps,
-        visibility = visibility,
-    )
-
-  if gen_cc:
-    cc_deps = ["//third_party/protobuf:protobuf-cxx"]
-    for dep in deps:
-      cc_deps += [dep + "_cc"]
-    native.cc_library(
-        name = name + "_cc",
-        visibility = visibility,
-        hdrs = [proto_pkg.label()],
-        srcs = [proto_pkg.label()],
-        defines = ["GOOGLE_PROTOBUF_NO_RTTI"],
-        deps = cc_deps,
-    )
-
-  if gen_py:
-    py_deps = []
-    for dep in deps:
-      py_deps += [dep + "_py"]
-    pex_library(
-        name = name + "_py",
-        visibility = visibility,
-        srcs = [proto_pkg.label()],
-        deps = py_deps,
-    )
-
diff --git a/tools/rules/proto.bzl b/tools/rules/proto.bzl
index a409293..6c82a7e 100644
--- a/tools/rules/proto.bzl
+++ b/tools/rules/proto.bzl
@@ -48,7 +48,7 @@
     genproto_java_impl,
     attrs = genproto_base_attrs + {
         "_protoc": attr.label(
-            default = Label("//third_party/protobuf:protoc"),
+            default = Label("@com_google_protobuf//:protoc"),
             allow_files = True,
             single_file = True,
         ),
