-
Notifications
You must be signed in to change notification settings - Fork 13
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Initial Implementation of Plugins for Bison Relay #597
Conversation
i don't know what you're trying to do why isn't clientrpc sufficient? |
Hi miki, Bison Relay has an internal package used solely for generating the gRPC interfaces: protoc-gen-go-svcintf https://github.com/companyzero/bisonrelay/tree/master/internal/protoc-gen-go-svcintf. The problem is, I need the types.UnimplementedPluginServiceServer method generated from the gRPC protoc so I can add it to the PluginService I am creating: https://github.com/companyzero/bisonrelay/pull/597/files#diff-84dac2fbd5c005b8ae60645d21e5e20506cbc467a5020c1f148dfeda3fda8569R52 Otherwise, I get a compatibility error:
The compatibility error is explained in the protoc README: https://github.com/grpc/grpc-go/blob/master/cmd/protoc-gen-go-grpc/README.md, and more information can be found in these issues: grpc/grpc-go#2318 and grpc/grpc-go#3669. So it was suggested to create a new grpc |
i still don't understand what a plugin is supposed to do is it code that third parties write and runs inside brclient? what about bruig? ppl write plugins will have to push prs to bisonrelay? |
Hey Miki, sorry about that. I added a README and a pluginserver_example.go to make it easier to understand how to create plugins.
|
60c2885
to
36ec663
Compare
e6a6528
to
e2038b9
Compare
b79fe8f
to
b78ad04
Compare
Status: Ready for Review
Summary:
This PR introduces the initial implementation of plugins for Bison Relay, providing a foundational setup for plugin integration and two example plugins to demonstrate functionality.
Key Features:
Plugin Initialization: Enables Bison Relay clients (
brclient
) to initialize a plugin server by enabling JSON-RPC listeners. This allowsbrclient
to act as a bridge, facilitating communication between the plugin server and other clients.Plugin Communication: Supports seamless connections between
brclient
instances and plugin servers, enabling new interaction possibilities and extending the functionality of the Bison Relay network.Examples Included:
Version Plugin: Demonstrates how to retrieve and display version information of a plugin connected to a
brclient
.View Version Plugin Example
Chat Plugin: Shows how to implement chat functionality via a plugin server, illustrating the potential for plugins to expand
brclient
capabilities.View Chat Plugin Example
Usage and Setup: