grpc_server_template 0.1.2 → 0.1.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: f0b48077a283152f69d566d4d5d84a81b8d2510aee8bdfb9091ec3502ac36db4
4
- data.tar.gz: ea804505420a961a63d2cc28ffa2fae449d586e748c5572548dc0ae9f75595d2
3
+ metadata.gz: 2c83a697abc7d48cbdf8e53ea15c4ae66461fe20fc0cc86ebc7b9243a6ec9cac
4
+ data.tar.gz: c5eadd8e3a4e9ab342180652d4c67f93d2ea0eeff6d0420b79352f3c043349e9
5
5
  SHA512:
6
- metadata.gz: 1f4d6faae4468b099fce21e8f946c05b8d6c472497dde4730b78b1bdd215b9ecd47057c3e85a6eeaefcaf016f32d2bf8fb0dbabb0ef34582fd049281d54eb449
7
- data.tar.gz: 1f2f5c02d7a76cf40513e8180d2926044c314ffb374aadb7513fa5e9600c51ff86aeabc3b70829966c9de47c876654c5c1d895f4688fd6ef5dfadab6c2c3db35
6
+ metadata.gz: e03b47b1d84df3f5e046ba16f757967b8af96602face57b0926cc446564f895d55a57575a137a766c098a033f82d65e23a3f8aae53a2d6a171f5c4dcbcbd56dc
7
+ data.tar.gz: aebdc9538ea0b3fdae93d2fcdeb6dfd184e0979deae720b62287942d647cf65f6dffd633120960d2e63e115b4b384b6ccb2401d16b92b87f1a5f226f7998da9f
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- grpc_server_template (0.1.2)
4
+ grpc_server_template (0.1.4)
5
5
 
6
6
  GEM
7
7
  remote: https://rubygems.org/
@@ -1,15 +1,23 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require "thor"
4
- require "fileutils"
5
- require "erb"
6
4
 
7
5
  module GrpcServerTemplate
8
6
  # Cli class
9
7
  class Cli < Thor
10
- desc "create PROJECT_NAME", "Creates a new gRPC Ruby server project with the given name"
11
- def create(project_name)
12
- system("echo 'Hello world #{project_name}'")
8
+ desc "build", "Build gRPC from proto file"
9
+ def build
10
+ system("bin/build")
11
+ end
12
+
13
+ desc "client", "runs the client"
14
+ def client
15
+ system("bin/client")
16
+ end
17
+
18
+ desc "server", "runs the server"
19
+ def server
20
+ system("bin/server")
13
21
  end
14
22
  end
15
23
  end
@@ -0,0 +1,18 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative "messages"
4
+ require_relative "service"
5
+
6
+ module GrpcServerTemplate
7
+ # Client
8
+ class Client
9
+ class << self
10
+ def say_hello(name: "server")
11
+ stub = GrpcServerTemplate::Stub.new("0.0.0.0:50052", :this_channel_is_insecure)
12
+ req = GrpcServerTemplate::Messages::HelloRequest.new(name: name)
13
+ resp_obj = stub.say_hello(req)
14
+ puts "Response: #{resp_obj}"
15
+ end
16
+ end
17
+ end
18
+ end
@@ -0,0 +1,14 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative "messages"
4
+ require_relative "service"
5
+
6
+ module GrpcServerTemplate
7
+ # Handler
8
+ class Handler < GrpcServerTemplate::Service
9
+ def say_hello(hello_req, _unused_call)
10
+ puts "Request: #{hello_req}"
11
+ GrpcServerTemplate::Messages::HelloReply.new(message: "Hello #{hello_req.name}")
12
+ end
13
+ end
14
+ end
@@ -0,0 +1,25 @@
1
+ # frozen_string_literal: true
2
+
3
+ # Generated by the protocol buffer compiler. DO NOT EDIT!
4
+ # source: grpc_server_template.proto
5
+
6
+ require "google/protobuf"
7
+
8
+ Google::Protobuf::DescriptorPool.generated_pool.build do
9
+ add_file("grpc_server_template.proto", syntax: :proto3) do
10
+ add_message "HelloRequest" do
11
+ optional :name, :string, 1
12
+ end
13
+ add_message "HelloReply" do
14
+ optional :message, :string, 1
15
+ end
16
+ end
17
+ end
18
+
19
+ module GrpcServerTemplate
20
+ # Messages
21
+ class Messages
22
+ HelloRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("HelloRequest").msgclass
23
+ HelloReply = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("HelloReply").msgclass
24
+ end
25
+ end
@@ -0,0 +1,17 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative "handler"
4
+
5
+ module GrpcServerTemplate
6
+ # Server
7
+ class Server
8
+ class << self
9
+ def start(port: 50_052)
10
+ @server = GRPC::RpcServer.new
11
+ @server.add_http2_port("0.0.0.0:#{port}", :this_port_is_insecure)
12
+ @server.handle(GrpcServerTemplate::Handler)
13
+ @server.run_till_terminated
14
+ end
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,22 @@
1
+ # frozen_string_literal: true
2
+
3
+ # Generated by the protocol buffer compiler. DO NOT EDIT!
4
+ # Source: grpc_server_template.proto for package ''
5
+
6
+ require "grpc"
7
+ require_relative "messages"
8
+
9
+ module GrpcServerTemplate
10
+ # The greeting service definition.
11
+ class Service
12
+ include ::GRPC::GenericService
13
+
14
+ self.marshal_class_method = :encode
15
+ self.unmarshal_class_method = :decode
16
+ self.service_name = "GrpcServerTemplate"
17
+
18
+ rpc :SayHello, GrpcServerTemplate::Messages::HelloRequest, GrpcServerTemplate::Messages::HelloReply
19
+ end
20
+
21
+ Stub = Service.rpc_stub_class
22
+ end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module GrpcServerTemplate
4
- VERSION = "0.1.2"
4
+ VERSION = "0.1.4"
5
5
  end
@@ -4,5 +4,4 @@ Dir[File.join(__dir__, "grpc_server_template", "*.rb")].sort.each { |file| requi
4
4
 
5
5
  module GrpcServerTemplate
6
6
  class Error < StandardError; end
7
- # Your code goes here...
8
7
  end
@@ -0,0 +1,16 @@
1
+ syntax = "proto3";
2
+
3
+ // The greeting service definition.
4
+ service GrpcServerTemplate {
5
+ rpc SayHello (HelloRequest) returns (HelloReply) {}
6
+ }
7
+
8
+ // The request message containing the user's name.
9
+ message HelloRequest {
10
+ string name = 1;
11
+ }
12
+
13
+ // The response message containing the greetings
14
+ message HelloReply {
15
+ string message = 1;
16
+ }
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: grpc_server_template
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.2
4
+ version: 0.1.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sylvance
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2023-01-11 00:00:00.000000000 Z
11
+ date: 2023-01-16 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: A template for the ruby grpc server.
14
14
  email:
@@ -30,7 +30,13 @@ files:
30
30
  - grpc_server_template.gemspec
31
31
  - lib/grpc_server_template.rb
32
32
  - lib/grpc_server_template/cli.rb
33
+ - lib/grpc_server_template/client.rb
34
+ - lib/grpc_server_template/handler.rb
35
+ - lib/grpc_server_template/messages.rb
36
+ - lib/grpc_server_template/server.rb
37
+ - lib/grpc_server_template/service.rb
33
38
  - lib/grpc_server_template/version.rb
39
+ - protos/grpc_server_template.proto
34
40
  - sig/grpc_server_template.rbs
35
41
  homepage: https://github.com/Sylvance/grpc_server_template/blob/main/README.md
36
42
  licenses: []