blob: 7160ac08ca8addecb0f1e4f444e40ddc9a1991a7 [file]
"""Common dependencies for rules_proto_grpc."""
load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive", "http_file")
load("//internal:common.bzl", "check_bazel_minimum_version")
# Versions
MINIMUM_BAZEL_VERSION = "3.0.0"
ENABLE_VERSION_NAGS = False
VERSIONS = {
# Core
"rules_proto": {
"type": "github",
"org": "bazelbuild",
"repo": "rules_proto",
"ref": "84ba6ec814eebbf5312b2cc029256097ae0042c3",
"sha256": "3bce0e2fcf502619119c7cac03613fb52ce3034b2159dd3ae9d35f7339558aa3",
},
"com_google_protobuf": {
# When updating, also update JS requirements, JS readme, Ruby requirements and C# requirements
"type": "github",
"org": "protocolbuffers",
"repo": "protobuf",
"ref": "v3.15.3",
"sha256": "b10bf4e2d1a7586f54e64a5d9e7837e5188fc75ae69e36f215eb01def4f9721b",
},
"com_github_grpc_grpc": {
# When updating, also update Go repositories.bzl, JS requirements, JS readme, Ruby requirements and C# requirements
"type": "github",
"org": "grpc",
"repo": "grpc",
"ref": "v1.35.0",
"sha256": "27dd2fc5c9809ddcde8eb6fa1fa278a3486566dfc28335fca13eb8df8bd3b958",
},
"zlib": {
"type": "http",
"urls": [
"https://mirror.bazel.build/zlib.net/zlib-1.2.11.tar.gz",
"https://zlib.net/zlib-1.2.11.tar.gz",
],
"sha256": "c3e5e9fdd5004dcb542feda5ee4f0ff0744628baf8ed2dd5d66f8ca1197cb1a1",
"strip_prefix": "zlib-1.2.11",
"build_file": "@rules_proto_grpc//third_party:BUILD.bazel.zlib",
},
"rules_python": {
"type": "github",
"org": "bazelbuild",
"repo": "rules_python",
"ref": "c7e068d38e2fec1d899e1c150e372f205c220e27",
"sha256": "8cc0ad31c8fc699a49ad31628273529ef8929ded0a0859a3d841ce711a9a90d5",
},
"build_bazel_rules_swift": {
"type": "github",
"org": "bazelbuild",
"repo": "rules_swift",
"ref": "0.18.0",
"sha256": "3da7a2e1b6bf002e1ee47b0d10d889a67ec5cab42b13cf52b08b6e2f77ca3acf",
},
"bazel_skylib": {
"type": "github",
"org": "bazelbuild",
"repo": "bazel-skylib",
"ref": "1.0.3",
"sha256": "7ac0fa88c0c4ad6f5b9ffb5e09ef81e235492c873659e6bb99efb89d11246bcb",
},
# Android
"build_bazel_rules_android": {
"type": "github",
"org": "bazelbuild",
"repo": "rules_android",
"ref": "9ab1134546364c6de84fc6c80b4202fdbebbbb35",
"sha256": "f329928c62ade05ceda72c4e145fd300722e6e592627d43580dd0a8211c14612",
},
# Buf
"protoc_gen_buf_breaking_darwin": {
"type": "http_file",
"urls": ["https://github.com/bufbuild/buf/releases/download/v0.38.0/protoc-gen-buf-breaking-Darwin-x86_64"],
"sha256": "639f57ade58f16996c861df9de7d819e6443f58b8087b44af81863eb9e781ba8",
"executable": True,
},
"protoc_gen_buf_breaking_linux": {
"type": "http_file",
"urls": ["https://github.com/bufbuild/buf/releases/download/v0.38.0/protoc-gen-buf-breaking-Linux-x86_64"],
"sha256": "298f56d527c8acea7cb51929bf1ebc75a96fd2f0c294248db68d3ba479086c53",
"executable": True,
},
"protoc_gen_buf_lint_darwin": {
"type": "http_file",
"urls": ["https://github.com/bufbuild/buf/releases/download/v0.38.0/protoc-gen-buf-lint-Darwin-x86_64"],
"sha256": "83884b667e33d2ba52f3d2976ad6d1a02333f93f73f719600d5e612f7d58c2a8",
"executable": True,
},
"protoc_gen_buf_lint_linux": {
"type": "http_file",
"urls": ["https://github.com/bufbuild/buf/releases/download/v0.38.0/protoc-gen-buf-lint-Linux-x86_64"],
"sha256": "ded760a019da3b5da89feecde1eb831649a70cc2305f1b82675a4080d12acddc",
"executable": True,
},
# C
"upb": {
"type": "github",
"org": "protocolbuffers",
"repo": "upb",
"ref": "eb0fdda14b7b211872507a66f7d988f7c24a44c9",
"sha256": "843d0729a0cb53fa2afb46b1c262438beb7477696f31e2fbfd84de97a710f2f1",
},
# C#
"io_bazel_rules_dotnet": {
"type": "github",
"org": "bazelbuild",
"repo": "rules_dotnet",
"ref": "0.0.7",
"sha256": "322d341066165267d3f411fe9e4f5c3e6630a3cab9c41eafd4197a2e798bbf2a",
},
# D
"io_bazel_rules_d": {
"type": "github",
"org": "bazelbuild",
"repo": "rules_d",
"ref": "40c63a7bd74036be3edaf782d34269c2debed5fd",
"sha256": "e9a1368f0bb3a513b839f14df8d753d42ae81b437ff107526ad62eebd2b24332",
},
"com_github_dcarp_protobuf_d": {
"type": "http",
"urls": ["https://github.com/dcarp/protobuf-d/archive/v0.6.2.tar.gz"],
"sha256": "5509883fa042aa2e1c8c0e072e52c695fb01466f572bd828bcde06347b82d465",
"strip_prefix": "protobuf-d-0.6.2",
"build_file": "@rules_proto_grpc//third_party:BUILD.bazel.com_github_dcarp_protobuf_d",
},
# Doc
"protoc_gen_doc_darwin": {
"type": "http",
"urls": ["https://github.com/pseudomuto/protoc-gen-doc/releases/download/v1.4.1/protoc-gen-doc-1.4.1.darwin-amd64.go1.15.2.tar.gz"],
"sha256": "a5f7ad62d495b5a97a907b5445c23524a9cc312eeab486a79299819286a3f6b0",
"strip_prefix": "protoc-gen-doc-1.4.1.darwin-amd64.go1.15.2",
"build_file_content": """exports_files(glob(["protoc-gen-doc*"]))""",
},
"protoc_gen_doc_linux": {
"type": "http",
"urls": ["https://github.com/pseudomuto/protoc-gen-doc/releases/download/v1.4.1/protoc-gen-doc-1.4.1.linux-amd64.go1.15.2.tar.gz"],
"sha256": "2e476c67063af55a5608f7ef876260eb4ca400b330b762a4f59096db501c5c8c",
"strip_prefix": "protoc-gen-doc-1.4.1.linux-amd64.go1.15.2",
"build_file_content": """exports_files(glob(["protoc-gen-doc*"]))""",
},
"protoc_gen_doc_windows": {
"type": "http",
"urls": ["https://github.com/pseudomuto/protoc-gen-doc/releases/download/v1.4.1/protoc-gen-doc-1.4.1.windows-amd64.go1.15.2.tar.gz"],
"sha256": "6ac742671b81d339768a683dfb9a4c03ea5eaa0b6880d47df46819ea1ddb2653",
"strip_prefix": "protoc-gen-doc-1.4.1.windows-amd64.go1.15.2",
"build_file_content": """exports_files(glob(["protoc-gen-doc*"]))""",
},
# Go
"io_bazel_rules_go": {
"type": "github",
"org": "bazelbuild",
"repo": "rules_go",
"ref": "v0.25.1",
"sha256": "aa301ab560203bf740d07456a505730bf1ee20f4c471f77357cd31e7e11f5170",
},
"bazel_gazelle": {
"type": "github",
"org": "bazelbuild",
"repo": "bazel-gazelle",
"ref": "v0.22.3",
"sha256": "112ceace31ac48a9dde28f1f1ad98e76fc7f901ef088b944a84e55bc93cd198a",
},
# grpc-gateway
"grpc_ecosystem_grpc_gateway": {
"type": "github",
"org": "grpc-ecosystem",
"repo": "grpc-gateway",
"ref": "v2.3.0",
"sha256": "91fc784b828cad7138ac89451b3e3c0c2342826f2e4d04a1c051add74391270a",
},
# Java
"io_grpc_grpc_java": {
"type": "github",
"org": "grpc",
"repo": "grpc-java",
"ref": "v1.35.0",
"sha256": "537d01bdc5ae2bdb267853a75578d671db3075b33e3a00a93f5a572191d3a7b3",
},
"rules_jvm_external": {
"type": "github",
"org": "bazelbuild",
"repo": "rules_jvm_external",
"ref": "3.0",
"sha256": "baa842cbc67aec78408aec3e480b2e94dbdd14d6b0170d3a3ee14a0e1a5bb95f",
},
# JavaScript
# Use .tar.gz in release assets, not the Github generated source .tar.gz
"build_bazel_rules_nodejs": {
"type": "http",
"urls": ["https://github.com/bazelbuild/rules_nodejs/releases/download/3.2.1/rules_nodejs-3.2.1.tar.gz"],
"sha256": "bfacf15161d96a6a39510e7b3d3b522cf61cb8b82a31e79400a84c5abcab5347",
},
"grpc_web_plugin_darwin": {
"type": "http_file", # When updating, also update in package.json and vice-versa
"urls": ["https://github.com/grpc/grpc-web/releases/download/1.2.1/protoc-gen-grpc-web-1.2.1-darwin-x86_64"],
"sha256": "81bb5d4d3ae0340568fd0739402c052f32476dd520b44355e5032b556a3bc0da",
"executable": True,
},
"grpc_web_plugin_linux": {
"type": "http_file", # When updating, also update in package.json and vice-versa
"urls": ["https://github.com/grpc/grpc-web/releases/download/1.2.1/protoc-gen-grpc-web-1.2.1-linux-x86_64"],
"sha256": "6ce1625db7902d38d38d83690ec578c182e9cf2abaeb58d3fba1dae0c299c597",
"executable": True,
},
"grpc_web_plugin_windows": {
"type": "http_file", # When updating, also update in package.json and vice-versa
"urls": ["https://github.com/grpc/grpc-web/releases/download/1.2.1/protoc-gen-grpc-web-1.2.1-windows-x86_64.exe"],
"sha256": "5886b4c9886dfdbfd1c7c2f26a15c396c6662b9f1acf9b6d8efbd490bc3736db",
"executable": True,
},
# Python
"subpar": {
"type": "github",
"org": "google",
"repo": "subpar",
"ref": "2.0.0",
"sha256": "b80297a1b8d38027a86836dbadc22f55dc3ecad56728175381aa6330705ac10f",
},
"six": {
"type": "http",
"urls": ["https://pypi.python.org/packages/source/s/six/six-1.13.0.tar.gz"],
"sha256": "30f610279e8b2578cab6db20741130331735c781b56053c59c4076da27f06b66",
"strip_prefix": "six-1.13.0",
"build_file": "@rules_proto_grpc//third_party:BUILD.bazel.six",
},
# Ruby
"bazelruby_rules_ruby": {
"type": "github",
"org": "bazelruby",
"repo": "rules_ruby",
"ref": "v0.4.1",
"sha256": "5a9660a2ef8dc115b192aa89c94e624378078988e2e9bff6792e61b02b390320",
},
# Rust
"rules_rust": {
"type": "github",
"org": "bazelbuild",
"repo": "rules_rust",
"ref": "1b7885acf0574d2f52e7c011ce8e03ad3aed25ae",
"sha256": "056e506c00847d085f99ff311a3bcea08a31e180f233fb020b6b9ed1898fe5b3",
},
# Scala
"io_bazel_rules_scala": {
"type": "github",
"org": "bazelbuild",
"repo": "rules_scala",
"ref": "de13a82f65af1e3c7047afd369e505bb3b2e1c64",
"sha256": "072687e2eef1a3506fae83ab8bb447bbe06fa5aace8fc25eb4b6106ac5374e6f",
},
"com_github_scalapb_scalapb": {
"type": "http",
"urls": ["https://github.com/scalapb/ScalaPB/releases/download/v0.9.7/scalapbc-0.9.7.zip"], # Matches version in https://github.com/bazelbuild/rules_scala/blob/master/scala_proto/private/scala_proto_default_repositories.bzl
"sha256": "623f626e97cca119b2a12c4e1d9a3c85aab9f9fd6dcb8dc22b4f704b824da94e",
"strip_prefix": "scalapbc-0.9.7",
"build_file": "@rules_proto_grpc//third_party:BUILD.bazel.com_github_scalapb_scalapb",
},
# Swift
"com_github_grpc_grpc_swift": {
"type": "github",
"org": "grpc",
"repo": "grpc-swift",
"ref": "1.0.0",
"sha256": "5e0258437538bdfa26ca0e023649d97baa138d91881b949b2b344ef84cc2082a",
"build_file": "@rules_proto_grpc//third_party:BUILD.bazel.com_github_grpc_grpc_swift",
},
"com_github_apple_swift_log": {
# Dependency of com_github_grpc_grpc_swift
"type": "github",
"org": "apple",
"repo": "swift-log",
"ref": "1.4.0",
"sha256": "057fb5fd7e7f60a368c0cd4a93cd5ecce701031d8ccafb7973b3635415d2e368",
"build_file": "@rules_proto_grpc//third_party:BUILD.bazel.com_github_apple_swift_log",
},
"com_github_apple_swift_nio": {
# Dependency of com_github_grpc_grpc_swift
"type": "github",
"org": "apple",
"repo": "swift-nio",
"ref": "2.25.1",
"sha256": "ddaeaba8f94d4480a4607ce8f262aa654649632bdf51d280beebf053c8f37b2c",
"build_file": "@rules_proto_grpc//third_party:BUILD.bazel.com_github_apple_swift_nio",
},
"com_github_apple_swift_nio_extras": {
# Dependency of com_github_grpc_grpc_swift
"type": "github",
"org": "apple",
"repo": "swift-nio-extras",
"ref": "1.7.0",
"sha256": "b718ee9fb24c1f0fa77a54747eba472e50067b90d5df6f2b67cfdea2036b0ee0",
"build_file": "@rules_proto_grpc//third_party:BUILD.bazel.com_github_apple_swift_nio_extras",
},
"com_github_apple_swift_nio_http2": {
# Dependency of com_github_grpc_grpc_swift
"type": "github",
"org": "apple",
"repo": "swift-nio-http2",
"ref": "1.16.2",
"sha256": "af65870424c6e0eb643365278886d0c5358f6700eae2255f11dbf5b10f90b567",
"build_file": "@rules_proto_grpc//third_party:BUILD.bazel.com_github_apple_swift_nio_http2",
},
"com_github_apple_swift_nio_ssl": {
# Dependency of com_github_grpc_grpc_swift
"type": "github",
"org": "apple",
"repo": "swift-nio-ssl",
"ref": "2.10.2",
"sha256": "700c69f5496ae473164a338677e07f826eb24d7d3808d6e0fdcf50f27df0614d",
"build_file": "@rules_proto_grpc//third_party:BUILD.bazel.com_github_apple_swift_nio_ssl",
},
"com_github_apple_swift_nio_transport_services": {
# Dependency of com_github_grpc_grpc_swift
"type": "github",
"org": "apple",
"repo": "swift-nio-transport-services",
"ref": "1.9.1",
"sha256": "2f0283647d8e17dcea6d4b6454c915d10c4c0106c7025d233aec0aaf4a3f2255",
"build_file": "@rules_proto_grpc//third_party:BUILD.bazel.com_github_apple_swift_nio_transport_services",
},
}
def _generic_dependency(name, **kwargs):
if name not in VERSIONS:
fail("Name {} not in VERSIONS".format(name))
dep = VERSIONS[name]
existing_rules = native.existing_rules()
if dep["type"] == "github":
# Resolve ref and sha256
ref = kwargs.get(name + "_ref", dep["ref"])
sha256 = kwargs.get(name + "_sha256", dep["sha256"])
# Fix GitHub naming normalisation in path
stripped_ref = ref
if stripped_ref.startswith("v"):
stripped_ref = ref[1:]
stripped_ref = stripped_ref.replace("@", "-")
# Generate URLs
urls = [
"https://github.com/{}/{}/archive/{}.tar.gz".format(dep["org"], dep["repo"], ref),
]
# Check for existing rule
if name not in existing_rules:
http_archive(
name = name,
strip_prefix = dep["repo"] + "-" + stripped_ref,
urls = urls,
sha256 = sha256,
**{k: v for k, v in dep.items() if k in ["build_file", "patch_cmds"]}
)
elif existing_rules[name]["kind"] != "http_archive":
if ENABLE_VERSION_NAGS:
print("Dependency '{}' has already been declared with a different rule kind. Found {}, expected http_archive".format(
name,
existing_rules[name]["kind"],
)) # buildifier: disable=print
elif existing_rules[name]["urls"] != tuple(urls):
if ENABLE_VERSION_NAGS:
print("Dependency '{}' has already been declared with a different version. Found urls={}, expected {}".format(
name,
existing_rules[name]["urls"],
tuple(urls),
)) # buildifier: disable=print
elif dep["type"] == "http":
if name not in existing_rules:
args = {k: v for k, v in dep.items() if k in ["urls", "sha256", "strip_prefix", "build_file", "build_file_content"]}
http_archive(name = name, **args)
elif existing_rules[name]["kind"] != "http_archive":
if ENABLE_VERSION_NAGS:
print("Dependency '{}' has already been declared with a different rule kind. Found {}, expected http_archive".format(
name,
existing_rules[name]["kind"],
)) # buildifier: disable=print
elif existing_rules[name]["urls"] != tuple(dep["urls"]):
if ENABLE_VERSION_NAGS:
print("Dependency '{}' has already been declared with a different version. Found urls={}, expected {}".format(
name,
existing_rules[name]["urls"],
tuple(dep["urls"]),
)) # buildifier: disable=print
elif dep["type"] == "http_file":
if name not in existing_rules:
args = {k: v for k, v in dep.items() if k in ["urls", "sha256", "executable"]}
http_file(name = name, **args)
elif existing_rules[name]["kind"] != "http_file":
if ENABLE_VERSION_NAGS:
print("Dependency '{}' has already been declared with a different rule kind. Found {}, expected http_file".format(
name,
existing_rules[name]["kind"],
)) # buildifier: disable=print
elif existing_rules[name]["urls"] != tuple(dep["urls"]):
if ENABLE_VERSION_NAGS:
print("Dependency '{}' has already been declared with a different version. Found urls={}, expected {}".format(
name,
existing_rules[name]["urls"],
tuple(dep["urls"]),
)) # buildifier: disable=print
elif dep["type"] == "local":
if name not in existing_rules:
args = {k: v for k, v in dep.items() if k in ["path"]}
native.local_repository(name = name, **args)
elif existing_rules[name]["kind"] != "local_repository":
if ENABLE_VERSION_NAGS:
print("Dependency '{}' has already been declared with a different rule kind. Found {}, expected local_repository".format(
name,
existing_rules[name]["kind"],
)) # buildifier: disable=print
elif existing_rules[name]["path"] != dep["path"]:
if ENABLE_VERSION_NAGS:
print("Dependency '{}' has already been declared with a different version. Found path={}, expected {}".format(
name,
existing_rules[name]["path"],
dep["urls"],
)) # buildifier: disable=print
else:
fail("Unknown dependency type {}".format(dep))
if "binds" in dep:
for bind in dep["binds"]:
if bind["name"] not in native.existing_rules():
native.bind(
name = bind["name"],
actual = bind["actual"],
)
#
# Toolchains
#
def rules_proto_grpc_toolchains(name = ""):
"""Register the rules_proto_grpc toolchains."""
check_bazel_minimum_version(MINIMUM_BAZEL_VERSION)
native.register_toolchains(str(Label("//protobuf:protoc_toolchain")))
#
# Core
#
def rules_proto_grpc_repos(**kwargs):
"""Load the rules_proto_grpc common dependencies.""" # buildifier: disable=function-docstring-args
check_bazel_minimum_version(MINIMUM_BAZEL_VERSION)
rules_proto(**kwargs)
rules_python(**kwargs)
build_bazel_rules_swift(**kwargs)
bazel_skylib(**kwargs)
six(**kwargs)
com_google_protobuf(**kwargs)
com_github_grpc_grpc(**kwargs)
external_zlib(**kwargs)
def rules_proto(**kwargs):
_generic_dependency("rules_proto", **kwargs)
def rules_python(**kwargs):
_generic_dependency("rules_python", **kwargs)
def build_bazel_rules_swift(**kwargs):
_generic_dependency("build_bazel_rules_swift", **kwargs)
def com_google_protobuf(**kwargs):
_generic_dependency("com_google_protobuf", **kwargs)
def com_github_grpc_grpc(**kwargs):
_generic_dependency("com_github_grpc_grpc", **kwargs)
def external_zlib(**kwargs):
_generic_dependency("zlib", **kwargs)
#
# Misc
#
def bazel_skylib(**kwargs):
_generic_dependency("bazel_skylib", **kwargs)
#
# Android
#
def build_bazel_rules_android(**kwargs):
_generic_dependency("build_bazel_rules_android", **kwargs)
#
# Buf
#
def protoc_gen_buf_breaking_darwin(**kwargs):
_generic_dependency("protoc_gen_buf_breaking_darwin", **kwargs)
def protoc_gen_buf_breaking_linux(**kwargs):
_generic_dependency("protoc_gen_buf_breaking_linux", **kwargs)
def protoc_gen_buf_lint_darwin(**kwargs):
_generic_dependency("protoc_gen_buf_lint_darwin", **kwargs)
def protoc_gen_buf_lint_linux(**kwargs):
_generic_dependency("protoc_gen_buf_lint_linux", **kwargs)
#
# C
#
def upb(**kwargs):
_generic_dependency("upb", **kwargs)
#
# C#
#
def io_bazel_rules_dotnet(**kwargs):
_generic_dependency("io_bazel_rules_dotnet", **kwargs)
#
# D
#
def io_bazel_rules_d(**kwargs):
_generic_dependency("io_bazel_rules_d", **kwargs)
def com_github_dcarp_protobuf_d(**kwargs):
_generic_dependency("com_github_dcarp_protobuf_d", **kwargs)
#
# Doc
#
def protoc_gen_doc_darwin(**kwargs):
_generic_dependency("protoc_gen_doc_darwin", **kwargs)
def protoc_gen_doc_linux(**kwargs):
_generic_dependency("protoc_gen_doc_linux", **kwargs)
def protoc_gen_doc_windows(**kwargs):
_generic_dependency("protoc_gen_doc_windows", **kwargs)
#
# Go
#
def io_bazel_rules_go(**kwargs):
_generic_dependency("io_bazel_rules_go", **kwargs)
def bazel_gazelle(**kwargs):
_generic_dependency("bazel_gazelle", **kwargs)
#
# gRPC gateway
#
def grpc_ecosystem_grpc_gateway(**kwargs):
_generic_dependency("grpc_ecosystem_grpc_gateway", **kwargs)
#
# Java
#
def io_grpc_grpc_java(**kwargs):
_generic_dependency("io_grpc_grpc_java", **kwargs)
def rules_jvm_external(**kwargs):
_generic_dependency("rules_jvm_external", **kwargs)
#
# JavaScript
#
def build_bazel_rules_nodejs(**kwargs):
_generic_dependency("build_bazel_rules_nodejs", **kwargs)
def grpc_web_plugin_darwin(**kwargs):
_generic_dependency("grpc_web_plugin_darwin", **kwargs)
def grpc_web_plugin_linux(**kwargs):
_generic_dependency("grpc_web_plugin_linux", **kwargs)
def grpc_web_plugin_windows(**kwargs):
_generic_dependency("grpc_web_plugin_windows", **kwargs)
#
# Python
#
def subpar(**kwargs):
_generic_dependency("subpar", **kwargs)
def six(**kwargs):
_generic_dependency("six", **kwargs)
#
# Ruby
#
def bazelruby_rules_ruby(**kwargs):
_generic_dependency("bazelruby_rules_ruby", **kwargs)
#
# Rust
#
def rules_rust(**kwargs):
_generic_dependency("rules_rust", **kwargs)
#
# Scala
#
def io_bazel_rules_scala(**kwargs):
_generic_dependency("io_bazel_rules_scala", **kwargs)
def com_github_scalapb_scalapb(**kwargs):
_generic_dependency("com_github_scalapb_scalapb", **kwargs)
#
# Swift
#
def com_github_grpc_grpc_swift(**kwargs):
_generic_dependency("com_github_grpc_grpc_swift", **kwargs)
def com_github_apple_swift_log(**kwargs):
_generic_dependency("com_github_apple_swift_log", **kwargs)
def com_github_apple_swift_nio(**kwargs):
_generic_dependency("com_github_apple_swift_nio", **kwargs)
def com_github_apple_swift_nio_extras(**kwargs):
_generic_dependency("com_github_apple_swift_nio_extras", **kwargs)
def com_github_apple_swift_nio_http2(**kwargs):
_generic_dependency("com_github_apple_swift_nio_http2", **kwargs)
def com_github_apple_swift_nio_ssl(**kwargs):
_generic_dependency("com_github_apple_swift_nio_ssl", **kwargs)
def com_github_apple_swift_nio_transport_services(**kwargs):
_generic_dependency("com_github_apple_swift_nio_transport_services", **kwargs)