Go¶
Rules for generating Go protobuf and gRPC .go
files and libraries using golang/protobuf. Libraries are created with go_library
from rules_go
Rule |
Description |
---|---|
Generates Go protobuf |
|
Generates Go protobuf and gRPC |
|
Generates Go protobuf and gRPC validation |
|
Generates a Go protobuf library using |
|
Generates a Go protobuf and gRPC library using |
|
Generates a Go protobuf and gRPC validation library using |
go_proto_compile¶
Generates Go protobuf .go
files
Example¶
Full example project can be found here
WORKSPACE
¶
load("@rules_proto_grpc//:repositories.bzl", "bazel_gazelle", "io_bazel_rules_go") # buildifier: disable=same-origin-load
io_bazel_rules_go()
load("@io_bazel_rules_go//go:deps.bzl", "go_register_toolchains", "go_rules_dependencies")
go_rules_dependencies()
go_register_toolchains(
version = "1.17.1",
)
bazel_gazelle()
load("@bazel_gazelle//:deps.bzl", "gazelle_dependencies")
gazelle_dependencies()
load("@rules_proto_grpc//go:repositories.bzl", rules_proto_grpc_go_repos = "go_repos")
rules_proto_grpc_go_repos()
BUILD.bazel
¶
load("@rules_proto_grpc//go:defs.bzl", "go_proto_compile")
go_proto_compile(
name = "person_go_proto",
protos = ["@rules_proto_grpc//example/proto:person_proto"],
)
go_proto_compile(
name = "place_go_proto",
protos = ["@rules_proto_grpc//example/proto:place_proto"],
)
go_proto_compile(
name = "thing_go_proto",
protos = ["@rules_proto_grpc//example/proto:thing_proto"],
)
Attributes¶
Name |
Type |
Mandatory |
Default |
Description |
---|---|---|---|---|
|
|
true |
List of labels that provide the |
|
|
|
false |
|
Extra options to pass to plugins, as a dict of plugin label -> list of strings. The key * can be used exclusively to apply to all plugins |
|
|
false |
|
The verbosity level. Supported values and results are 0: Show nothing, 1: Show command, 2: Show command and sandbox after running protoc, 3: Show command and sandbox before and after running protoc, 4. Show env, command, expected outputs and sandbox before and after running protoc |
|
|
false |
|
Path to prefix to the generated files in the output directory |
|
|
false |
|
A list of extra args to pass directly to protoc, not as plugin options |
|
|
false |
|
List of labels that provide extra files to be available during protoc execution |
|
|
false |
|
The output mode for the target. PREFIXED (the default) will output to a directory named by the target within the current package root, NO_PREFIX will output directly to the current package. Using NO_PREFIX may lead to conflicting writes |
Plugins¶
go_grpc_compile¶
Generates Go protobuf and gRPC .go
files
Example¶
Full example project can be found here
WORKSPACE
¶
load("@rules_proto_grpc//:repositories.bzl", "bazel_gazelle", "io_bazel_rules_go") # buildifier: disable=same-origin-load
io_bazel_rules_go()
load("@io_bazel_rules_go//go:deps.bzl", "go_register_toolchains", "go_rules_dependencies")
go_rules_dependencies()
go_register_toolchains(
version = "1.17.1",
)
bazel_gazelle()
load("@bazel_gazelle//:deps.bzl", "gazelle_dependencies")
gazelle_dependencies()
load("@rules_proto_grpc//go:repositories.bzl", rules_proto_grpc_go_repos = "go_repos")
rules_proto_grpc_go_repos()
BUILD.bazel
¶
load("@rules_proto_grpc//go:defs.bzl", "go_grpc_compile")
go_grpc_compile(
name = "thing_go_grpc",
protos = ["@rules_proto_grpc//example/proto:thing_proto"],
)
go_grpc_compile(
name = "greeter_go_grpc",
protos = ["@rules_proto_grpc//example/proto:greeter_grpc"],
)
Attributes¶
Name |
Type |
Mandatory |
Default |
Description |
---|---|---|---|---|
|
|
true |
List of labels that provide the |
|
|
|
false |
|
Extra options to pass to plugins, as a dict of plugin label -> list of strings. The key * can be used exclusively to apply to all plugins |
|
|
false |
|
The verbosity level. Supported values and results are 0: Show nothing, 1: Show command, 2: Show command and sandbox after running protoc, 3: Show command and sandbox before and after running protoc, 4. Show env, command, expected outputs and sandbox before and after running protoc |
|
|
false |
|
Path to prefix to the generated files in the output directory |
|
|
false |
|
A list of extra args to pass directly to protoc, not as plugin options |
|
|
false |
|
List of labels that provide extra files to be available during protoc execution |
|
|
false |
|
The output mode for the target. PREFIXED (the default) will output to a directory named by the target within the current package root, NO_PREFIX will output directly to the current package. Using NO_PREFIX may lead to conflicting writes |
Plugins¶
go_validate_compile¶
Warning
This rule is experimental. It may not work correctly or may change in future releases!
Generates Go protobuf and gRPC validation .go
files
Example¶
Full example project can be found here
WORKSPACE
¶
load("@rules_proto_grpc//:repositories.bzl", "bazel_gazelle", "io_bazel_rules_go") # buildifier: disable=same-origin-load
io_bazel_rules_go()
load("@io_bazel_rules_go//go:deps.bzl", "go_register_toolchains", "go_rules_dependencies")
go_rules_dependencies()
go_register_toolchains(
version = "1.17.1",
)
bazel_gazelle()
load("@bazel_gazelle//:deps.bzl", "gazelle_dependencies")
gazelle_dependencies()
load("@rules_proto_grpc//go:repositories.bzl", rules_proto_grpc_go_repos = "go_repos")
rules_proto_grpc_go_repos()
BUILD.bazel
¶
load("@rules_proto_grpc//go:defs.bzl", "go_validate_compile")
go_validate_compile(
name = "thing_go_validate",
protos = ["@rules_proto_grpc//example/proto:thing_proto"],
)
go_validate_compile(
name = "greeter_go_validate",
protos = ["@rules_proto_grpc//example/proto:greeter_grpc"],
)
Attributes¶
Name |
Type |
Mandatory |
Default |
Description |
---|---|---|---|---|
|
|
true |
List of labels that provide the |
|
|
|
false |
|
Extra options to pass to plugins, as a dict of plugin label -> list of strings. The key * can be used exclusively to apply to all plugins |
|
|
false |
|
The verbosity level. Supported values and results are 0: Show nothing, 1: Show command, 2: Show command and sandbox after running protoc, 3: Show command and sandbox before and after running protoc, 4. Show env, command, expected outputs and sandbox before and after running protoc |
|
|
false |
|
Path to prefix to the generated files in the output directory |
|
|
false |
|
A list of extra args to pass directly to protoc, not as plugin options |
|
|
false |
|
List of labels that provide extra files to be available during protoc execution |
|
|
false |
|
The output mode for the target. PREFIXED (the default) will output to a directory named by the target within the current package root, NO_PREFIX will output directly to the current package. Using NO_PREFIX may lead to conflicting writes |
Plugins¶
go_proto_library¶
Generates a Go protobuf library using go_library
from rules_go
Example¶
Full example project can be found here
WORKSPACE
¶
load("@rules_proto_grpc//:repositories.bzl", "bazel_gazelle", "io_bazel_rules_go") # buildifier: disable=same-origin-load
io_bazel_rules_go()
load("@io_bazel_rules_go//go:deps.bzl", "go_register_toolchains", "go_rules_dependencies")
go_rules_dependencies()
go_register_toolchains(
version = "1.17.1",
)
bazel_gazelle()
load("@bazel_gazelle//:deps.bzl", "gazelle_dependencies")
gazelle_dependencies()
load("@rules_proto_grpc//go:repositories.bzl", rules_proto_grpc_go_repos = "go_repos")
rules_proto_grpc_go_repos()
BUILD.bazel
¶
load("@rules_proto_grpc//go:defs.bzl", "go_proto_library")
go_proto_library(
name = "proto_go_proto",
importpath = "github.com/rules-proto-grpc/rules_proto_grpc/example/proto",
protos = [
"@rules_proto_grpc//example/proto:person_proto",
"@rules_proto_grpc//example/proto:place_proto",
"@rules_proto_grpc//example/proto:thing_proto",
],
)
Attributes¶
Name |
Type |
Mandatory |
Default |
Description |
---|---|---|---|---|
|
|
true |
List of labels that provide the |
|
|
|
false |
|
Extra options to pass to plugins, as a dict of plugin label -> list of strings. The key * can be used exclusively to apply to all plugins |
|
|
false |
|
The verbosity level. Supported values and results are 0: Show nothing, 1: Show command, 2: Show command and sandbox after running protoc, 3: Show command and sandbox before and after running protoc, 4. Show env, command, expected outputs and sandbox before and after running protoc |
|
|
false |
|
Path to prefix to the generated files in the output directory |
|
|
false |
|
A list of extra args to pass directly to protoc, not as plugin options |
|
|
false |
|
List of labels that provide extra files to be available during protoc execution |
|
|
false |
|
The output mode for the target. PREFIXED (the default) will output to a directory named by the target within the current package root, NO_PREFIX will output directly to the current package. Using NO_PREFIX may lead to conflicting writes |
|
|
false |
|
List of labels to pass as deps attr to underlying lang_library rule |
|
|
false |
|
Importpath for the generated files |
go_grpc_library¶
Generates a Go protobuf and gRPC library using go_library
from rules_go
Example¶
Full example project can be found here
WORKSPACE
¶
load("@rules_proto_grpc//:repositories.bzl", "bazel_gazelle", "io_bazel_rules_go") # buildifier: disable=same-origin-load
io_bazel_rules_go()
load("@io_bazel_rules_go//go:deps.bzl", "go_register_toolchains", "go_rules_dependencies")
go_rules_dependencies()
go_register_toolchains(
version = "1.17.1",
)
bazel_gazelle()
load("@bazel_gazelle//:deps.bzl", "gazelle_dependencies")
gazelle_dependencies()
load("@rules_proto_grpc//go:repositories.bzl", rules_proto_grpc_go_repos = "go_repos")
rules_proto_grpc_go_repos()
BUILD.bazel
¶
load("@rules_proto_grpc//go:defs.bzl", "go_grpc_library")
go_grpc_library(
name = "greeter_go_grpc",
importpath = "github.com/rules-proto-grpc/rules_proto_grpc/example/proto",
protos = [
"@rules_proto_grpc//example/proto:greeter_grpc",
"@rules_proto_grpc//example/proto:thing_proto",
],
)
Attributes¶
Name |
Type |
Mandatory |
Default |
Description |
---|---|---|---|---|
|
|
true |
List of labels that provide the |
|
|
|
false |
|
Extra options to pass to plugins, as a dict of plugin label -> list of strings. The key * can be used exclusively to apply to all plugins |
|
|
false |
|
The verbosity level. Supported values and results are 0: Show nothing, 1: Show command, 2: Show command and sandbox after running protoc, 3: Show command and sandbox before and after running protoc, 4. Show env, command, expected outputs and sandbox before and after running protoc |
|
|
false |
|
Path to prefix to the generated files in the output directory |
|
|
false |
|
A list of extra args to pass directly to protoc, not as plugin options |
|
|
false |
|
List of labels that provide extra files to be available during protoc execution |
|
|
false |
|
The output mode for the target. PREFIXED (the default) will output to a directory named by the target within the current package root, NO_PREFIX will output directly to the current package. Using NO_PREFIX may lead to conflicting writes |
|
|
false |
|
List of labels to pass as deps attr to underlying lang_library rule |
|
|
false |
|
Importpath for the generated files |
go_validate_library¶
Warning
This rule is experimental. It may not work correctly or may change in future releases!
Generates a Go protobuf and gRPC validation library using go_library
from rules_go
Example¶
Full example project can be found here
WORKSPACE
¶
load("@rules_proto_grpc//:repositories.bzl", "bazel_gazelle", "io_bazel_rules_go") # buildifier: disable=same-origin-load
io_bazel_rules_go()
load("@io_bazel_rules_go//go:deps.bzl", "go_register_toolchains", "go_rules_dependencies")
go_rules_dependencies()
go_register_toolchains(
version = "1.17.1",
)
bazel_gazelle()
load("@bazel_gazelle//:deps.bzl", "gazelle_dependencies")
gazelle_dependencies()
load("@rules_proto_grpc//go:repositories.bzl", rules_proto_grpc_go_repos = "go_repos")
rules_proto_grpc_go_repos()
BUILD.bazel
¶
load("@rules_proto_grpc//go:defs.bzl", "go_validate_library")
go_validate_library(
name = "greeter_go_validate",
importpath = "github.com/rules-proto-grpc/rules_proto_grpc/example/proto",
protos = [
"@rules_proto_grpc//example/proto:greeter_grpc",
"@rules_proto_grpc//example/proto:thing_proto",
],
)
Attributes¶
Name |
Type |
Mandatory |
Default |
Description |
---|---|---|---|---|
|
|
true |
List of labels that provide the |
|
|
|
false |
|
Extra options to pass to plugins, as a dict of plugin label -> list of strings. The key * can be used exclusively to apply to all plugins |
|
|
false |
|
The verbosity level. Supported values and results are 0: Show nothing, 1: Show command, 2: Show command and sandbox after running protoc, 3: Show command and sandbox before and after running protoc, 4. Show env, command, expected outputs and sandbox before and after running protoc |
|
|
false |
|
Path to prefix to the generated files in the output directory |
|
|
false |
|
A list of extra args to pass directly to protoc, not as plugin options |
|
|
false |
|
List of labels that provide extra files to be available during protoc execution |
|
|
false |
|
The output mode for the target. PREFIXED (the default) will output to a directory named by the target within the current package root, NO_PREFIX will output directly to the current package. Using NO_PREFIX may lead to conflicting writes |
|
|
false |
|
List of labels to pass as deps attr to underlying lang_library rule |
|
|
false |
|
Importpath for the generated files |