diff --git a/upstream_utils/update_protobuf.py b/upstream_utils/update_protobuf.py
new file mode 100755
index 0000000..fbecb9c
--- /dev/null
+++ b/upstream_utils/update_protobuf.py
@@ -0,0 +1,307 @@
+#!/usr/bin/env python3
+
+import os
+import shutil
+
+from upstream_utils import (
+    get_repo_root,
+    clone_repo,
+    comment_out_invalid_includes,
+    copy_to,
+    walk_cwd_and_copy_if,
+    walk_if,
+    git_am,
+)
+
+protobuf_lite_sources = set(
+    [
+        "google/protobuf/any_lite.cc",
+        "google/protobuf/arena.cc",
+        "google/protobuf/arenastring.cc",
+        "google/protobuf/arenaz_sampler.cc",
+        "google/protobuf/extension_set.cc",
+        "google/protobuf/generated_enum_util.cc",
+        "google/protobuf/generated_message_tctable_lite.cc",
+        "google/protobuf/generated_message_util.cc",
+        "google/protobuf/implicit_weak_message.cc",
+        "google/protobuf/inlined_string_field.cc",
+        "google/protobuf/io/coded_stream.cc",
+        "google/protobuf/io/io_win32.cc",
+        "google/protobuf/io/strtod.cc",
+        "google/protobuf/io/zero_copy_stream.cc",
+        "google/protobuf/io/zero_copy_stream_impl.cc",
+        "google/protobuf/io/zero_copy_stream_impl_lite.cc",
+        "google/protobuf/map.cc",
+        "google/protobuf/message_lite.cc",
+        "google/protobuf/parse_context.cc",
+        "google/protobuf/repeated_field.cc",
+        "google/protobuf/repeated_ptr_field.cc",
+        "google/protobuf/stubs/bytestream.cc",
+        "google/protobuf/stubs/common.cc",
+        "google/protobuf/stubs/int128.cc",
+        "google/protobuf/stubs/status.cc",
+        "google/protobuf/stubs/statusor.cc",
+        "google/protobuf/stubs/stringpiece.cc",
+        "google/protobuf/stubs/stringprintf.cc",
+        "google/protobuf/stubs/structurally_valid.cc",
+        "google/protobuf/stubs/strutil.cc",
+        "google/protobuf/stubs/time.cc",
+        "google/protobuf/wire_format_lite.cc",
+    ]
+)
+
+protobuf_lite_includes = set(
+    [
+        "google/protobuf/any.h",
+        "google/protobuf/arena.h",
+        "google/protobuf/arena_impl.h",
+        "google/protobuf/arenastring.h",
+        "google/protobuf/arenaz_sampler.h",
+        "google/protobuf/endian.h",
+        "google/protobuf/explicitly_constructed.h",
+        "google/protobuf/extension_set.h",
+        "google/protobuf/extension_set_inl.h",
+        "google/protobuf/generated_enum_util.h",
+        "google/protobuf/generated_message_tctable_decl.h",
+        "google/protobuf/generated_message_tctable_impl.h",
+        "google/protobuf/generated_message_util.h",
+        "google/protobuf/has_bits.h",
+        "google/protobuf/implicit_weak_message.h",
+        "google/protobuf/inlined_string_field.h",
+        "google/protobuf/io/coded_stream.h",
+        "google/protobuf/io/io_win32.h",
+        "google/protobuf/io/strtod.h",
+        "google/protobuf/io/zero_copy_stream.h",
+        "google/protobuf/io/zero_copy_stream_impl.h",
+        "google/protobuf/io/zero_copy_stream_impl_lite.h",
+        "google/protobuf/map.h",
+        "google/protobuf/map_entry_lite.h",
+        "google/protobuf/map_field_lite.h",
+        "google/protobuf/map_type_handler.h",
+        "google/protobuf/message_lite.h",
+        "google/protobuf/metadata_lite.h",
+        "google/protobuf/parse_context.h",
+        "google/protobuf/port.h",
+        "google/protobuf/repeated_field.h",
+        "google/protobuf/repeated_ptr_field.h",
+        "google/protobuf/stubs/bytestream.h",
+        "google/protobuf/stubs/callback.h",
+        "google/protobuf/stubs/casts.h",
+        "google/protobuf/stubs/common.h",
+        "google/protobuf/stubs/hash.h",
+        "google/protobuf/stubs/logging.h",
+        "google/protobuf/stubs/macros.h",
+        "google/protobuf/stubs/map_util.h",
+        "google/protobuf/stubs/mutex.h",
+        "google/protobuf/stubs/once.h",
+        "google/protobuf/stubs/platform_macros.h",
+        "google/protobuf/stubs/port.h",
+        "google/protobuf/stubs/status.h",
+        "google/protobuf/stubs/stl_util.h",
+        "google/protobuf/stubs/stringpiece.h",
+        "google/protobuf/stubs/strutil.h",
+        "google/protobuf/stubs/template_util.h",
+        "google/protobuf/wire_format_lite.h",
+    ]
+)
+
+protobuf_sources = set(
+    [
+        "google/protobuf/any.cc",
+        "google/protobuf/any.pb.cc",
+        "google/protobuf/api.pb.cc",
+        "google/protobuf/compiler/importer.cc",
+        "google/protobuf/compiler/parser.cc",
+        "google/protobuf/descriptor.cc",
+        "google/protobuf/descriptor.pb.cc",
+        "google/protobuf/descriptor_database.cc",
+        "google/protobuf/duration.pb.cc",
+        "google/protobuf/dynamic_message.cc",
+        "google/protobuf/empty.pb.cc",
+        "google/protobuf/extension_set_heavy.cc",
+        "google/protobuf/field_mask.pb.cc",
+        "google/protobuf/generated_message_bases.cc",
+        "google/protobuf/generated_message_reflection.cc",
+        "google/protobuf/generated_message_tctable_full.cc",
+        "google/protobuf/io/gzip_stream.cc",
+        "google/protobuf/io/printer.cc",
+        "google/protobuf/io/tokenizer.cc",
+        "google/protobuf/map_field.cc",
+        "google/protobuf/message.cc",
+        "google/protobuf/reflection_ops.cc",
+        "google/protobuf/service.cc",
+        "google/protobuf/source_context.pb.cc",
+        "google/protobuf/struct.pb.cc",
+        "google/protobuf/stubs/substitute.cc",
+        "google/protobuf/text_format.cc",
+        "google/protobuf/timestamp.pb.cc",
+        "google/protobuf/type.pb.cc",
+        "google/protobuf/unknown_field_set.cc",
+        "google/protobuf/util/delimited_message_util.cc",
+        "google/protobuf/util/field_comparator.cc",
+        "google/protobuf/util/field_mask_util.cc",
+        "google/protobuf/util/internal/datapiece.cc",
+        "google/protobuf/util/internal/default_value_objectwriter.cc",
+        "google/protobuf/util/internal/error_listener.cc",
+        "google/protobuf/util/internal/field_mask_utility.cc",
+        "google/protobuf/util/internal/json_escaping.cc",
+        "google/protobuf/util/internal/json_objectwriter.cc",
+        "google/protobuf/util/internal/json_stream_parser.cc",
+        "google/protobuf/util/internal/object_writer.cc",
+        "google/protobuf/util/internal/proto_writer.cc",
+        "google/protobuf/util/internal/protostream_objectsource.cc",
+        "google/protobuf/util/internal/protostream_objectwriter.cc",
+        "google/protobuf/util/internal/type_info.cc",
+        "google/protobuf/util/internal/utility.cc",
+        "google/protobuf/util/json_util.cc",
+        "google/protobuf/util/message_differencer.cc",
+        "google/protobuf/util/time_util.cc",
+        "google/protobuf/util/type_resolver_util.cc",
+        "google/protobuf/wire_format.cc",
+        "google/protobuf/wrappers.pb.cc",
+    ]
+)
+
+protobuf_includes = set(
+    [
+        "google/protobuf/any.pb.h",
+        "google/protobuf/api.pb.h",
+        "google/protobuf/compiler/importer.h",
+        "google/protobuf/compiler/parser.h",
+        "google/protobuf/descriptor.h",
+        "google/protobuf/descriptor.pb.h",
+        "google/protobuf/descriptor_database.h",
+        "google/protobuf/duration.pb.h",
+        "google/protobuf/dynamic_message.h",
+        "google/protobuf/empty.pb.h",
+        "google/protobuf/field_access_listener.h",
+        "google/protobuf/field_mask.pb.h",
+        "google/protobuf/generated_enum_reflection.h",
+        "google/protobuf/generated_message_bases.h",
+        "google/protobuf/generated_message_reflection.h",
+        "google/protobuf/io/gzip_stream.h",
+        "google/protobuf/io/printer.h",
+        "google/protobuf/io/tokenizer.h",
+        "google/protobuf/map_entry.h",
+        "google/protobuf/map_field.h",
+        "google/protobuf/map_field_inl.h",
+        "google/protobuf/message.h",
+        "google/protobuf/metadata.h",
+        "google/protobuf/reflection.h",
+        "google/protobuf/reflection_internal.h",
+        "google/protobuf/reflection_ops.h",
+        "google/protobuf/service.h",
+        "google/protobuf/source_context.pb.h",
+        "google/protobuf/struct.pb.h",
+        "google/protobuf/text_format.h",
+        "google/protobuf/timestamp.pb.h",
+        "google/protobuf/type.pb.h",
+        "google/protobuf/unknown_field_set.h",
+        "google/protobuf/util/delimited_message_util.h",
+        "google/protobuf/util/field_comparator.h",
+        "google/protobuf/util/field_mask_util.h",
+        "google/protobuf/util/json_util.h",
+        "google/protobuf/util/message_differencer.h",
+        "google/protobuf/util/time_util.h",
+        "google/protobuf/util/type_resolver.h",
+        "google/protobuf/util/type_resolver_util.h",
+        "google/protobuf/wire_format.h",
+        "google/protobuf/wrappers.pb.h",
+    ]
+)
+
+protobuf_internal_includes = set(
+    [
+        "google/protobuf/port_def.inc",
+        "google/protobuf/port_undef.inc",
+        "google/protobuf/stubs/int128.h",
+        "google/protobuf/stubs/mathutil.h",
+        "google/protobuf/stubs/statusor.h",
+        "google/protobuf/stubs/status_macros.h",
+        "google/protobuf/stubs/stringprintf.h",
+        "google/protobuf/stubs/substitute.h",
+        "google/protobuf/stubs/time.h",
+        "google/protobuf/util/internal/constants.h",
+        "google/protobuf/util/internal/datapiece.h",
+        "google/protobuf/util/internal/default_value_objectwriter.h",
+        "google/protobuf/util/internal/error_listener.h",
+        "google/protobuf/util/internal/field_mask_utility.h",
+        "google/protobuf/util/internal/json_escaping.h",
+        "google/protobuf/util/internal/json_objectwriter.h",
+        "google/protobuf/util/internal/json_stream_parser.h",
+        "google/protobuf/util/internal/location_tracker.h",
+        "google/protobuf/util/internal/object_location_tracker.h",
+        "google/protobuf/util/internal/object_source.h",
+        "google/protobuf/util/internal/object_writer.h",
+        "google/protobuf/util/internal/proto_writer.h",
+        "google/protobuf/util/internal/protostream_objectsource.h",
+        "google/protobuf/util/internal/protostream_objectwriter.h",
+        "google/protobuf/util/internal/structured_objectwriter.h",
+        "google/protobuf/util/internal/type_info.h",
+        "google/protobuf/util/internal/utility.h",
+    ]
+)
+
+use_src_files = protobuf_lite_sources | protobuf_sources
+use_include_files = (
+    protobuf_lite_includes | protobuf_includes | protobuf_internal_includes
+)
+
+
+def matches(dp, f, files):
+    if not dp.startswith("./src/"):
+        return False
+    p = dp[6:] + "/" + f
+    return p in files
+
+
+def main():
+    upstream_root = clone_repo(
+        "https://github.com/protocolbuffers/protobuf", "v3.21.12"
+    )
+    wpilib_root = get_repo_root()
+    wpiutil = os.path.join(wpilib_root, "wpiutil")
+
+    # Apply patches to upstream Git repo
+    os.chdir(upstream_root)
+    for f in [
+        "0001-Fix-sign-compare-warnings.patch",
+        "0002-Remove-redundant-move.patch",
+        "0003-Fix-maybe-uninitialized-warnings.patch",
+        "0004-Fix-coded_stream-WriteRaw.patch",
+        "0005-Suppress-enum-enum-conversion-warning.patch",
+        "0006-Fix-noreturn-function-returning.patch",
+        "0007-Work-around-GCC-12-restrict-warning-compiler-bug.patch",
+        "0008-Disable-MSVC-switch-warning.patch",
+        "0009-Disable-unused-function-warning.patch",
+        "0010-Disable-pedantic-warning.patch",
+        "0011-Avoid-use-of-sprintf.patch",
+    ]:
+        git_am(os.path.join(wpilib_root, "upstream_utils/protobuf_patches", f))
+
+    # Delete old install
+    for d in [
+        "src/main/native/thirdparty/protobuf/src",
+        "src/main/native/thirdparty/protobuf/include",
+    ]:
+        shutil.rmtree(os.path.join(wpiutil, d), ignore_errors=True)
+
+    # Copy protobuf source files into allwpilib
+    src_files = walk_if(".", lambda dp, f: matches(dp, f, use_src_files))
+    src_files = [f[22:] for f in src_files]
+    os.chdir(os.path.join(upstream_root, "src/google/protobuf"))
+    copy_to(src_files, os.path.join(wpiutil, "src/main/native/thirdparty/protobuf/src"))
+
+    # Copy protobuf header files into allwpilib
+    os.chdir(upstream_root)
+    include_files = walk_if(".", lambda dp, f: matches(dp, f, use_include_files))
+    include_files = [f[6:] for f in include_files]
+    os.chdir(os.path.join(upstream_root, "src"))
+    copy_to(
+        include_files,
+        os.path.join(wpiutil, "src/main/native/thirdparty/protobuf/include"),
+    )
+
+
+if __name__ == "__main__":
+    main()
