rules-proto-grpc / rules_proto_grpc

Bazel rules for building Protobuf and gRPC code and libraries from proto_library targets
https://rules-proto-grpc.com
Apache License 2.0
256 stars 159 forks source link

Support for remaining languages under Bzlmod #299

Open aaliddell opened 11 months ago

aaliddell commented 11 months ago

This issue tracks the status of migrating languages to the Bzlmod version of the rules. Some languages are complete, some are blocked by external factors and some just need some time spent bringing them over.

Current language state

Key: :x:: Not working and blocked by some other problem :hourglass:: Not working, but support is likely possible :white_check_mark:: Working

Language State Notes
Android :x: Android rules in BCR are ancient. grpc-java not in BCR [1] [2]
Buf :white_check_mark: Full support
C :white_check_mark: Full support
C++ :white_check_mark: Full support
C# :hourglass: Looks possible
D :x: No D rules in BCR
Doc :white_check_mark: Full support
F# :hourglass: Looks possible
Go :white_check_mark: Full support
gRPC-Gateway :white_check_mark: Full support
Java :white_check_mark: grpc-java not in BCR [1] [2]
JavaScript :hourglass: Needs migration to rules_js, looks possible
Kotlin :hourglass: Needs evaluation
Objective-C :white_check_mark: Full support
PHP :x: No PHP rules in BCR. These rules were maybe never used anyway
Python :white_check_mark: Full support
Ruby :hourglass: Ruby rules only just landed in BCR
Rust :hourglass: Looks possible
Scala :x: No Scala rules in BCR
Swift :hourglass: Looks possible
TypeScript :hourglass: Looks possible
ah-quant commented 6 months ago

FYI @aaliddell: grpc-java (patched) is in BCR now, both issues are closed. And the regular version also includes native bzlmod support.

Thanks for this ruleset - I'm eagerly looking forward to a release including Java :)

ah-quant commented 6 months ago

Also, protobuf (patched) is in BCR (for my Java project, 23.1 works but 26.0 does not; there's a maven conflict if you use rules_jvm_external with a maven repo in your own project). And it will probably gain native support soon, there's https://github.com/protocolbuffers/protobuf/blob/main/MODULE.bazel now. But automatic publishing to BCR is apparently not active, yet.

spags-lacework commented 2 months ago

Is there any update on Rust and Javascript/Typescript?

pcpLiu commented 2 months ago

+1. Would be super appreciated for prioritizing the nodejs support!! For us, it's the only language blocking to migrate to 5x and bzmold.

Is there any update on Rust and Javascript/Typescript?

aaliddell commented 2 months ago

I drafted out some of the JS rules during the 5.0.0 work and it needs some modernisation from 4.x.x. Rules nodejs would be replaced with rules_js, but what’s the current ‘recommended’ protobuf and grpc libraries for JS? Still grpc-node or is connect the new player?

pcpLiu commented 1 month ago

@aaliddell not an expert but grpc-node looks more reliable to me as it's maintained by the grpc team?