Automated Code Change

PiperOrigin-RevId: 1002380001
diff --git a/bazel/tests/java_lite_proto_library_tests/correctly_defines_direct_jars_alias_proto/BUILD b/bazel/tests/java_lite_proto_library_tests/correctly_defines_direct_jars_alias_proto/BUILD
index 768e333..e348598 100644
--- a/bazel/tests/java_lite_proto_library_tests/correctly_defines_direct_jars_alias_proto/BUILD
+++ b/bazel/tests/java_lite_proto_library_tests/correctly_defines_direct_jars_alias_proto/BUILD
@@ -1,3 +1,10 @@
+# Protocol Buffers - Google's data interchange format
+# Copyright 2026 Google LLC
+#
+# Use of this source code is governed by a BSD-style
+# license that can be found in the LICENSE file or at
+# https://developers.google.com/open-source/licenses/bsd
+
 load("@rules_testing//lib:util.bzl", "PREVENT_IMPLICIT_BUILDING_TAGS")
 load("//bazel:java_lite_proto_library.bzl", "java_lite_proto_library")
 load("//bazel:proto_library.bzl", "proto_library")
diff --git a/bazel/tests/java_lite_proto_library_tests/correctly_defines_direct_jars_alias_proto/tests.bzl b/bazel/tests/java_lite_proto_library_tests/correctly_defines_direct_jars_alias_proto/tests.bzl
index 79d85e7..f30cc3b 100644
--- a/bazel/tests/java_lite_proto_library_tests/correctly_defines_direct_jars_alias_proto/tests.bzl
+++ b/bazel/tests/java_lite_proto_library_tests/correctly_defines_direct_jars_alias_proto/tests.bzl
@@ -1,3 +1,10 @@
+# Protocol Buffers - Google's data interchange format
+# Copyright 2026 Google LLC
+#
+# Use of this source code is governed by a BSD-style
+# license that can be found in the LICENSE file or at
+# https://developers.google.com/open-source/licenses/bsd
+
 """
 Tests that a java_proto_library only provides direct jars corresponding on the proto_library
 rules it directly depends on, excluding anything that the proto_library rules depends on
diff --git a/bazel/tests/java_lite_proto_library_tests/empty_srcs_for_java_api/BUILD b/bazel/tests/java_lite_proto_library_tests/empty_srcs_for_java_api/BUILD
index 6e3c945..e61e0a4 100644
--- a/bazel/tests/java_lite_proto_library_tests/empty_srcs_for_java_api/BUILD
+++ b/bazel/tests/java_lite_proto_library_tests/empty_srcs_for_java_api/BUILD
@@ -1,3 +1,10 @@
+# Protocol Buffers - Google's data interchange format
+# Copyright 2026 Google LLC
+#
+# Use of this source code is governed by a BSD-style
+# license that can be found in the LICENSE file or at
+# https://developers.google.com/open-source/licenses/bsd
+
 load("@rules_testing//lib:util.bzl", "PREVENT_IMPLICIT_BUILDING_TAGS")
 load("//bazel:java_lite_proto_library.bzl", "java_lite_proto_library")
 load("//bazel:proto_library.bzl", "proto_library")
diff --git a/bazel/tests/java_lite_proto_library_tests/empty_srcs_for_java_api/tests.bzl b/bazel/tests/java_lite_proto_library_tests/empty_srcs_for_java_api/tests.bzl
index ffdc0a1..ca5ae37 100644
--- a/bazel/tests/java_lite_proto_library_tests/empty_srcs_for_java_api/tests.bzl
+++ b/bazel/tests/java_lite_proto_library_tests/empty_srcs_for_java_api/tests.bzl
@@ -1,3 +1,10 @@
+# Protocol Buffers - Google's data interchange format
+# Copyright 2026 Google LLC
+#
+# Use of this source code is governed by a BSD-style
+# license that can be found in the LICENSE file or at
+# https://developers.google.com/open-source/licenses/bsd
+
 """Tests for empty srcs interop."""
 
 load("@rules_java//java/common:java_info.bzl", "JavaInfo")
diff --git a/bazel/tests/java_lite_proto_library_tests/exports_without_allowed_public_check/BUILD b/bazel/tests/java_lite_proto_library_tests/exports_without_allowed_public_check/BUILD
index 5aaf024..878364e 100644
--- a/bazel/tests/java_lite_proto_library_tests/exports_without_allowed_public_check/BUILD
+++ b/bazel/tests/java_lite_proto_library_tests/exports_without_allowed_public_check/BUILD
@@ -1,3 +1,10 @@
+# Protocol Buffers - Google's data interchange format
+# Copyright 2026 Google LLC
+#
+# Use of this source code is governed by a BSD-style
+# license that can be found in the LICENSE file or at
+# https://developers.google.com/open-source/licenses/bsd
+
 load("@rules_testing//lib:util.bzl", "PREVENT_IMPLICIT_BUILDING_TAGS")
 load("//bazel:proto_library.bzl", "proto_library")
 load("//bazel/tests:java_lite_proto_library_tests/test_utils.bzl", "JAVA_LITE_PROTO_TESTING_ASPECT")
diff --git a/bazel/tests/java_lite_proto_library_tests/exports_without_allowed_public_check/tests.bzl b/bazel/tests/java_lite_proto_library_tests/exports_without_allowed_public_check/tests.bzl
index 423db83..81fbc8a 100644
--- a/bazel/tests/java_lite_proto_library_tests/exports_without_allowed_public_check/tests.bzl
+++ b/bazel/tests/java_lite_proto_library_tests/exports_without_allowed_public_check/tests.bzl
@@ -1,3 +1,10 @@
+# Protocol Buffers - Google's data interchange format
+# Copyright 2026 Google LLC
+#
+# Use of this source code is governed by a BSD-style
+# license that can be found in the LICENSE file or at
+# https://developers.google.com/open-source/licenses/bsd
+
 """Tests that java_lite_proto_library doesn't pass public import flags to the protocol compiler."""
 
 def _test_java_lite_proto_exports_without_allowed_public_check(env, target):
diff --git a/bazel/tests/java_lite_proto_library_tests/java_exports/BUILD b/bazel/tests/java_lite_proto_library_tests/java_exports/BUILD
index 77d61ec..ee10a6d 100644
--- a/bazel/tests/java_lite_proto_library_tests/java_exports/BUILD
+++ b/bazel/tests/java_lite_proto_library_tests/java_exports/BUILD
@@ -1,3 +1,10 @@
+# Protocol Buffers - Google's data interchange format
+# Copyright 2026 Google LLC
+#
+# Use of this source code is governed by a BSD-style
+# license that can be found in the LICENSE file or at
+# https://developers.google.com/open-source/licenses/bsd
+
 load("@rules_java//java:java_library.bzl", "java_library")
 load("@rules_testing//lib:util.bzl", "PREVENT_IMPLICIT_BUILDING_TAGS")
 load("//bazel:java_lite_proto_library.bzl", "java_lite_proto_library")
diff --git a/bazel/tests/java_lite_proto_library_tests/java_exports/tests.bzl b/bazel/tests/java_lite_proto_library_tests/java_exports/tests.bzl
index 18368c6..84259d8 100644
--- a/bazel/tests/java_lite_proto_library_tests/java_exports/tests.bzl
+++ b/bazel/tests/java_lite_proto_library_tests/java_exports/tests.bzl
@@ -1,3 +1,10 @@
+# Protocol Buffers - Google's data interchange format
+# Copyright 2026 Google LLC
+#
+# Use of this source code is governed by a BSD-style
+# license that can be found in the LICENSE file or at
+# https://developers.google.com/open-source/licenses/bsd
+
 """Tests for java_lite_proto_library exports."""
 
 load("@rules_java//java/common:java_info.bzl", "JavaInfo")
diff --git a/bazel/tests/java_lite_proto_library_tests/java_protos_expose_starlark_providers/BUILD b/bazel/tests/java_lite_proto_library_tests/java_protos_expose_starlark_providers/BUILD
index a668f2e..df06c82 100644
--- a/bazel/tests/java_lite_proto_library_tests/java_protos_expose_starlark_providers/BUILD
+++ b/bazel/tests/java_lite_proto_library_tests/java_protos_expose_starlark_providers/BUILD
@@ -1,3 +1,10 @@
+# Protocol Buffers - Google's data interchange format
+# Copyright 2026 Google LLC
+#
+# Use of this source code is governed by a BSD-style
+# license that can be found in the LICENSE file or at
+# https://developers.google.com/open-source/licenses/bsd
+
 load("@rules_testing//lib:util.bzl", "PREVENT_IMPLICIT_BUILDING_TAGS")
 load("//bazel:java_lite_proto_library.bzl", "java_lite_proto_library")
 load("//bazel:proto_library.bzl", "proto_library")
diff --git a/bazel/tests/java_lite_proto_library_tests/java_protos_expose_starlark_providers/tests.bzl b/bazel/tests/java_lite_proto_library_tests/java_protos_expose_starlark_providers/tests.bzl
index 117100b..6f0c9ae 100644
--- a/bazel/tests/java_lite_proto_library_tests/java_protos_expose_starlark_providers/tests.bzl
+++ b/bazel/tests/java_lite_proto_library_tests/java_protos_expose_starlark_providers/tests.bzl
@@ -1,3 +1,10 @@
+# Protocol Buffers - Google's data interchange format
+# Copyright 2026 Google LLC
+#
+# Use of this source code is governed by a BSD-style
+# license that can be found in the LICENSE file or at
+# https://developers.google.com/open-source/licenses/bsd
+
 """Tests tracking Java interop behaviors."""
 
 load("@rules_java//java/common:java_info.bzl", "JavaInfo")
diff --git a/bazel/tests/java_lite_proto_library_tests/java_protos_exposes_java_provider/BUILD b/bazel/tests/java_lite_proto_library_tests/java_protos_exposes_java_provider/BUILD
index a668f2e..df06c82 100644
--- a/bazel/tests/java_lite_proto_library_tests/java_protos_exposes_java_provider/BUILD
+++ b/bazel/tests/java_lite_proto_library_tests/java_protos_exposes_java_provider/BUILD
@@ -1,3 +1,10 @@
+# Protocol Buffers - Google's data interchange format
+# Copyright 2026 Google LLC
+#
+# Use of this source code is governed by a BSD-style
+# license that can be found in the LICENSE file or at
+# https://developers.google.com/open-source/licenses/bsd
+
 load("@rules_testing//lib:util.bzl", "PREVENT_IMPLICIT_BUILDING_TAGS")
 load("//bazel:java_lite_proto_library.bzl", "java_lite_proto_library")
 load("//bazel:proto_library.bzl", "proto_library")
diff --git a/bazel/tests/java_lite_proto_library_tests/java_protos_exposes_java_provider/tests.bzl b/bazel/tests/java_lite_proto_library_tests/java_protos_exposes_java_provider/tests.bzl
index ee7225e..43caff8 100644
--- a/bazel/tests/java_lite_proto_library_tests/java_protos_exposes_java_provider/tests.bzl
+++ b/bazel/tests/java_lite_proto_library_tests/java_protos_exposes_java_provider/tests.bzl
@@ -1,3 +1,10 @@
+# Protocol Buffers - Google's data interchange format
+# Copyright 2026 Google LLC
+#
+# Use of this source code is governed by a BSD-style
+# license that can be found in the LICENSE file or at
+# https://developers.google.com/open-source/licenses/bsd
+
 """Tests tracking Java interop behaviors."""
 
 load("@rules_java//java/common:java_info.bzl", "JavaInfo")
diff --git a/bazel/tests/java_lite_proto_library_tests/jlpl_strict_deps/BUILD b/bazel/tests/java_lite_proto_library_tests/jlpl_strict_deps/BUILD
index 90df136..9341e2d 100644
--- a/bazel/tests/java_lite_proto_library_tests/jlpl_strict_deps/BUILD
+++ b/bazel/tests/java_lite_proto_library_tests/jlpl_strict_deps/BUILD
@@ -1,3 +1,10 @@
+# Protocol Buffers - Google's data interchange format
+# Copyright 2026 Google LLC
+#
+# Use of this source code is governed by a BSD-style
+# license that can be found in the LICENSE file or at
+# https://developers.google.com/open-source/licenses/bsd
+
 load("@rules_java//java:java_library.bzl", "java_library")
 load("@rules_testing//lib:util.bzl", "PREVENT_IMPLICIT_BUILDING_TAGS")
 load("//bazel:java_lite_proto_library.bzl", "java_lite_proto_library")
diff --git a/bazel/tests/java_lite_proto_library_tests/jlpl_strict_deps/tests.bzl b/bazel/tests/java_lite_proto_library_tests/jlpl_strict_deps/tests.bzl
index 9be2d75..bfae538 100644
--- a/bazel/tests/java_lite_proto_library_tests/jlpl_strict_deps/tests.bzl
+++ b/bazel/tests/java_lite_proto_library_tests/jlpl_strict_deps/tests.bzl
@@ -1,3 +1,10 @@
+# Protocol Buffers - Google's data interchange format
+# Copyright 2026 Google LLC
+#
+# Use of this source code is governed by a BSD-style
+# license that can be found in the LICENSE file or at
+# https://developers.google.com/open-source/licenses/bsd
+
 """Tests that strict deps are enforced by default on java_lite_proto_library rules.
 
 A java_library depending on a java_lite_proto_library must only get the header
diff --git a/bazel/tests/java_lite_proto_library_tests/proto_library_builds_compiled_jar/BUILD b/bazel/tests/java_lite_proto_library_tests/proto_library_builds_compiled_jar/BUILD
index af694a0..33ee195 100644
--- a/bazel/tests/java_lite_proto_library_tests/proto_library_builds_compiled_jar/BUILD
+++ b/bazel/tests/java_lite_proto_library_tests/proto_library_builds_compiled_jar/BUILD
@@ -1,3 +1,10 @@
+# Protocol Buffers - Google's data interchange format
+# Copyright 2026 Google LLC
+#
+# Use of this source code is governed by a BSD-style
+# license that can be found in the LICENSE file or at
+# https://developers.google.com/open-source/licenses/bsd
+
 load("@rules_testing//lib:util.bzl", "PREVENT_IMPLICIT_BUILDING_TAGS")
 load("//bazel:java_lite_proto_library.bzl", "java_lite_proto_library")
 load("//bazel:proto_library.bzl", "proto_library")
diff --git a/bazel/tests/java_lite_proto_library_tests/proto_library_builds_compiled_jar/tests.bzl b/bazel/tests/java_lite_proto_library_tests/proto_library_builds_compiled_jar/tests.bzl
index 0b858e3..e26f62d 100644
--- a/bazel/tests/java_lite_proto_library_tests/proto_library_builds_compiled_jar/tests.bzl
+++ b/bazel/tests/java_lite_proto_library_tests/proto_library_builds_compiled_jar/tests.bzl
@@ -1,3 +1,10 @@
+# Protocol Buffers - Google's data interchange format
+# Copyright 2026 Google LLC
+#
+# Use of this source code is governed by a BSD-style
+# license that can be found in the LICENSE file or at
+# https://developers.google.com/open-source/licenses/bsd
+
 """Tests that java_lite_proto_library builds a compiled jar."""
 
 def _test_lite_proto_library_builds_compiled_jar(env, target):
diff --git a/bazel/tests/java_lite_proto_library_tests/proto_library_interop/BUILD b/bazel/tests/java_lite_proto_library_tests/proto_library_interop/BUILD
index a668f2e..df06c82 100644
--- a/bazel/tests/java_lite_proto_library_tests/proto_library_interop/BUILD
+++ b/bazel/tests/java_lite_proto_library_tests/proto_library_interop/BUILD
@@ -1,3 +1,10 @@
+# Protocol Buffers - Google's data interchange format
+# Copyright 2026 Google LLC
+#
+# Use of this source code is governed by a BSD-style
+# license that can be found in the LICENSE file or at
+# https://developers.google.com/open-source/licenses/bsd
+
 load("@rules_testing//lib:util.bzl", "PREVENT_IMPLICIT_BUILDING_TAGS")
 load("//bazel:java_lite_proto_library.bzl", "java_lite_proto_library")
 load("//bazel:proto_library.bzl", "proto_library")
diff --git a/bazel/tests/java_lite_proto_library_tests/proto_library_interop/tests.bzl b/bazel/tests/java_lite_proto_library_tests/proto_library_interop/tests.bzl
index edbf923..d2a9441 100644
--- a/bazel/tests/java_lite_proto_library_tests/proto_library_interop/tests.bzl
+++ b/bazel/tests/java_lite_proto_library_tests/proto_library_interop/tests.bzl
@@ -1,3 +1,10 @@
+# Protocol Buffers - Google's data interchange format
+# Copyright 2026 Google LLC
+#
+# Use of this source code is governed by a BSD-style
+# license that can be found in the LICENSE file or at
+# https://developers.google.com/open-source/licenses/bsd
+
 """Tests tracking Java interop behaviors."""
 
 load("@rules_java//java/common:java_info.bzl", "JavaInfo")
diff --git a/bazel/tests/java_lite_proto_library_tests/same_version_compiler_arguments/BUILD b/bazel/tests/java_lite_proto_library_tests/same_version_compiler_arguments/BUILD
index ebf53bb..e3af12d 100644
--- a/bazel/tests/java_lite_proto_library_tests/same_version_compiler_arguments/BUILD
+++ b/bazel/tests/java_lite_proto_library_tests/same_version_compiler_arguments/BUILD
@@ -1,3 +1,10 @@
+# Protocol Buffers - Google's data interchange format
+# Copyright 2026 Google LLC
+#
+# Use of this source code is governed by a BSD-style
+# license that can be found in the LICENSE file or at
+# https://developers.google.com/open-source/licenses/bsd
+
 load("@rules_testing//lib:util.bzl", "PREVENT_IMPLICIT_BUILDING_TAGS")
 load("//bazel:proto_library.bzl", "proto_library")
 load("//bazel/tests:java_lite_proto_library_tests/test_utils.bzl", "JAVA_LITE_PROTO_TESTING_ASPECT", "java_info_subject_factory")
diff --git a/bazel/tests/java_lite_proto_library_tests/same_version_compiler_arguments/tests.bzl b/bazel/tests/java_lite_proto_library_tests/same_version_compiler_arguments/tests.bzl
index 59bb953..247586e 100644
--- a/bazel/tests/java_lite_proto_library_tests/same_version_compiler_arguments/tests.bzl
+++ b/bazel/tests/java_lite_proto_library_tests/same_version_compiler_arguments/tests.bzl
@@ -1,3 +1,10 @@
+# Protocol Buffers - Google's data interchange format
+# Copyright 2026 Google LLC
+#
+# Use of this source code is governed by a BSD-style
+# license that can be found in the LICENSE file or at
+# https://developers.google.com/open-source/licenses/bsd
+
 """Tests for same version compiler arguments."""
 
 load("@rules_java//java/common:java_info.bzl", "JavaInfo")
diff --git a/bazel/tests/java_proto_library_tests/aspect_providers/BUILD b/bazel/tests/java_proto_library_tests/aspect_providers/BUILD
index 865bf9d..5a79e27 100644
--- a/bazel/tests/java_proto_library_tests/aspect_providers/BUILD
+++ b/bazel/tests/java_proto_library_tests/aspect_providers/BUILD
@@ -1,3 +1,10 @@
+# Protocol Buffers - Google's data interchange format
+# Copyright 2026 Google LLC
+#
+# Use of this source code is governed by a BSD-style
+# license that can be found in the LICENSE file or at
+# https://developers.google.com/open-source/licenses/bsd
+
 load("@rules_testing//lib:util.bzl", "PREVENT_IMPLICIT_BUILDING_TAGS")
 load("//bazel:java_proto_library.bzl", "java_proto_library")
 load("//bazel:proto_library.bzl", "proto_library")
diff --git a/bazel/tests/java_proto_library_tests/aspect_providers/tests.bzl b/bazel/tests/java_proto_library_tests/aspect_providers/tests.bzl
index e4ea4f7..7a7fb17 100644
--- a/bazel/tests/java_proto_library_tests/aspect_providers/tests.bzl
+++ b/bazel/tests/java_proto_library_tests/aspect_providers/tests.bzl
@@ -1,3 +1,10 @@
+# Protocol Buffers - Google's data interchange format
+# Copyright 2026 Google LLC
+#
+# Use of this source code is governed by a BSD-style
+# license that can be found in the LICENSE file or at
+# https://developers.google.com/open-source/licenses/bsd
+
 """Tests that java_proto_library aspect exposes a JavaInfo provider with the correct output jars."""
 
 load("@rules_java//java/common:java_info.bzl", "JavaInfo")
diff --git a/bazel/tests/java_proto_library_tests/binary_deps/BUILD b/bazel/tests/java_proto_library_tests/binary_deps/BUILD
index 606f868..aec681d 100644
--- a/bazel/tests/java_proto_library_tests/binary_deps/BUILD
+++ b/bazel/tests/java_proto_library_tests/binary_deps/BUILD
@@ -1,3 +1,10 @@
+# Protocol Buffers - Google's data interchange format
+# Copyright 2026 Google LLC
+#
+# Use of this source code is governed by a BSD-style
+# license that can be found in the LICENSE file or at
+# https://developers.google.com/open-source/licenses/bsd
+
 load("@rules_testing//lib:util.bzl", "PREVENT_IMPLICIT_BUILDING_TAGS")
 load("//bazel:java_proto_library.bzl", "java_proto_library")
 load("//bazel:proto_library.bzl", "proto_library")
diff --git a/bazel/tests/java_proto_library_tests/binary_deps/tests.bzl b/bazel/tests/java_proto_library_tests/binary_deps/tests.bzl
index df6f48a..e0030f7 100644
--- a/bazel/tests/java_proto_library_tests/binary_deps/tests.bzl
+++ b/bazel/tests/java_proto_library_tests/binary_deps/tests.bzl
@@ -1,3 +1,10 @@
+# Protocol Buffers - Google's data interchange format
+# Copyright 2026 Google LLC
+#
+# Use of this source code is governed by a BSD-style
+# license that can be found in the LICENSE file or at
+# https://developers.google.com/open-source/licenses/bsd
+
 """Tests that java_proto_library depends on the right set of files."""
 
 load("@rules_java//java/common:java_info.bzl", "JavaInfo")
diff --git a/hpb/BUILD b/hpb/BUILD
index d29e10f..89e65ea 100644
--- a/hpb/BUILD
+++ b/hpb/BUILD
@@ -5,14 +5,27 @@
 # license that can be found in the LICENSE file or at
 # https://developers.google.com/open-source/licenses/bsd
 
+load("@bazel_skylib//:bzl_library.bzl", "bzl_library")
 load("@bazel_skylib//rules:common_settings.bzl", "string_flag")
 load("@rules_cc//cc:cc_test.bzl", "cc_test")
 load("@rules_cc//cc:defs.bzl", "cc_library")
+load("//hpb:hpb_users.bzl", "HPB_USERS")
 
 package(default_applicable_licenses = ["//:license"])
 
 licenses(["notice"])
 
+package_group(
+    name = "hpb_users",
+    packages = HPB_USERS,
+)
+
+bzl_library(
+    name = "hpb_users_bzl",
+    srcs = ["hpb_users.bzl"],
+    visibility = ["//hpb:__subpackages__"],
+)
+
 string_flag(
     name = "hpb_backend",
     build_setting_default = "upb",
@@ -20,7 +33,7 @@
         "upb",
         "cpp",
     ],
-    visibility = ["//visibility:public"],
+    visibility = [":hpb_users"],
 )
 
 config_setting(
@@ -28,7 +41,7 @@
     flag_values = {
         ":hpb_backend": "upb",
     },
-    visibility = ["//visibility:public"],
+    visibility = [":hpb_users"],
 )
 
 config_setting(
@@ -36,7 +49,7 @@
     flag_values = {
         ":hpb_backend": "cpp",
     },
-    visibility = ["//visibility:public"],
+    visibility = [":hpb_users"],
 )
 
 cc_library(
@@ -44,7 +57,7 @@
     hdrs = [
         "hpb.h",
     ],
-    visibility = ["//visibility:public"],
+    visibility = [":hpb_users"],
     deps = [
         ":arena",
         ":extension",
@@ -88,7 +101,7 @@
     hdrs = [
         "repeated_field.h",
     ],
-    visibility = ["//visibility:public"],
+    visibility = [":hpb_users"],
     deps = [
         ":multibackend",
         ":ptr",
@@ -122,19 +135,19 @@
 cc_library(
     name = "requires",
     hdrs = ["requires.h"],
-    visibility = ["//visibility:public"],
+    visibility = [":hpb_users"],
 )
 
 cc_library(
     name = "ptr",
     hdrs = ["ptr.h"],
-    visibility = ["//visibility:public"],
+    visibility = [":hpb_users"],
 )
 
 cc_library(
     name = "arena",
     hdrs = ["arena.h"],
-    visibility = ["//visibility:public"],
+    visibility = [":hpb_users"],
     deps = [
         ":multibackend",
         "//hpb/backend:types",
@@ -152,7 +165,7 @@
     name = "status",
     srcs = ["status.cc"],
     hdrs = ["status.h"],
-    visibility = ["//visibility:public"],
+    visibility = [":hpb_users"],
     deps = [
         ":multibackend",
         "//hpb/backend:types",
@@ -182,7 +195,7 @@
     name = "extension",
     srcs = ["extension.cc"],
     hdrs = ["extension.h"],
-    visibility = ["//visibility:public"],
+    visibility = [":hpb_users"],
     deps = [
         ":arena",
         ":multibackend",
@@ -205,7 +218,7 @@
 cc_library(
     name = "options",
     hdrs = ["options.h"],
-    visibility = ["//visibility:public"],
+    visibility = [":hpb_users"],
     deps = [
         "//hpb:extension",
         "//hpb:multibackend",
diff --git a/hpb/bazel/BUILD b/hpb/bazel/BUILD
index 9460138..d5051d2 100644
--- a/hpb/bazel/BUILD
+++ b/hpb/bazel/BUILD
@@ -14,9 +14,10 @@
 bzl_library(
     name = "hpb_proto_library_bzl",
     srcs = ["hpb_proto_library.bzl"],
-    visibility = ["//visibility:public"],
+    visibility = ["//hpb:hpb_users"],
     deps = [
         "//bazel/common:proto_common_bzl",
+        "//hpb:hpb_users_bzl",
         "//upb/bazel:upb_proto_library_bzl",
         "@bazel_skylib//lib:paths",
         "@bazel_tools//tools/cpp:toolchain_utils.bzl",
diff --git a/hpb/bazel/hpb_proto_library.bzl b/hpb/bazel/hpb_proto_library.bzl
index 95fc8ad..24695e8 100644
--- a/hpb/bazel/hpb_proto_library.bzl
+++ b/hpb/bazel/hpb_proto_library.bzl
@@ -16,9 +16,12 @@
 load("//bazel/common:proto_common.bzl", "proto_common")
 load("//bazel/common:proto_info.bzl", "ProtoInfo")
 load("//bazel/common:proto_lang_toolchain_info.bzl", "ProtoLangToolchainInfo")
+load("//hpb:hpb_users.bzl", "HPB_USERS")
 load("//upb/bazel:upb_proto_library.bzl", "UpbWrappedCcInfo", "upb_proto_library_aspect")
 load("//upb/bazel/private:upb_proto_library_internal/cc_library_func.bzl", "cc_library_func")  # buildifier: disable=bzl-visibility
 
+visibility(HPB_USERS)
+
 def upb_use_cpp_toolchain():
     return use_cpp_toolchain()
 
diff --git a/hpb/hpb_users.bzl b/hpb/hpb_users.bzl
new file mode 100644
index 0000000..b9518f3
--- /dev/null
+++ b/hpb/hpb_users.bzl
@@ -0,0 +1,9 @@
+# Copyright (c) 2026, Google LLC
+# All rights reserved.
+#
+# Use of this source code is governed by a BSD-style
+# license that can be found in the LICENSE file or at
+# https://developers.google.com/open-source/licenses/bsd
+
+visibility("public")
+HPB_USERS = ["public"]