Mark extension as reproducible (#15)

diff --git a/MODULE.bazel b/MODULE.bazel
index eb2b720..fe07dfa 100644
--- a/MODULE.bazel
+++ b/MODULE.bazel
@@ -6,6 +6,7 @@
     compatibility_level = 1,
 )
 
+bazel_dep(name = "bazel_features", version = "1.9.0")
 bazel_dep(name = "bazel_skylib", version = "1.4.1")
 bazel_dep(name = "rules_proto", version = "6.0.0")
 bazel_dep(name = "platforms", version = "0.0.8")
diff --git a/protoc/extensions.bzl b/protoc/extensions.bzl
index 9db5c34..1b28f1c 100644
--- a/protoc/extensions.bzl
+++ b/protoc/extensions.bzl
@@ -1,5 +1,6 @@
 "Module extensions for use under bzlmod"
 
+load("@bazel_features//:features.bzl", "bazel_features")
 load(":toolchain.bzl", "protoc_toolchains")
 
 DEFAULT_REPOSITORY = "toolchains_protoc_hub"
@@ -25,6 +26,11 @@
         if name != root_name:
             protoc_toolchains(name, register = False, google_protobuf = toolchain.google_protobuf, version = toolchain.version)
 
+    if bazel_features.external_deps.extension_metadata_has_reproducible:
+        return module_ctx.extension_metadata(reproducible = True)
+    else:
+        return None
+
 protoc = module_extension(
     implementation = _proto_extension_impl,
     tag_classes = {