grpc_server_template 0.1.2 → 0.1.4

Sign up to get free protection for your applications and to get access to all the features.
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: []