From 816a073447c973255da5e0b6241c4be1ec5bf16b Mon Sep 17 00:00:00 2001 From: Albert Alef Date: Tue, 13 Oct 2026 18:15:11 -0300 Subject: [PATCH 1/2] fix server examples for actual lib documentation Signed-off-by: Albert Alef --- context/getting-started.md | 7 ++++--- guides/getting-started/readme.md | 7 ++++--- lib/async/grpc/dispatcher.rb | 2 +- lib/async/grpc/service.rb | 2 +- 4 files changed, 10 insertions(+), 8 deletions(-) diff --git a/context/getting-started.md b/context/getting-started.md index 9104567..5aa600c 100644 --- a/context/getting-started.md +++ b/context/getting-started.md @@ -119,7 +119,7 @@ require "async/http/server" require "async/http/endpoint" endpoint = Async::HTTP::Endpoint.parse("http://localhost:50051") -server = Async::HTTP::Server.for(endpoint, dispatcher) +server = Async::HTTP::Server.new(dispatcher, endpoint) Async do server.run @@ -196,7 +196,8 @@ Async do endpoint = Async::HTTP::Endpoint.parse("http://localhost:50051") dispatcher = Async::GRPC::Dispatcher.new dispatcher.register(GreeterService.new(GreeterInterface, "hello.Greeter")) - server = Async::HTTP::Server.for(endpoint, dispatcher) + server = Async::HTTP::Server.new(dispatcher, endpoint) + server_task = Async{server.run} # Setup client client_endpoint = Async::HTTP::Endpoint.parse("http://localhost:50051") @@ -209,6 +210,6 @@ Async do response = stub.say_hello(request) puts response.message # => "Hello, World!" - server.run + server_task.stop end ``` diff --git a/guides/getting-started/readme.md b/guides/getting-started/readme.md index 9104567..5aa600c 100644 --- a/guides/getting-started/readme.md +++ b/guides/getting-started/readme.md @@ -119,7 +119,7 @@ require "async/http/server" require "async/http/endpoint" endpoint = Async::HTTP::Endpoint.parse("http://localhost:50051") -server = Async::HTTP::Server.for(endpoint, dispatcher) +server = Async::HTTP::Server.new(dispatcher, endpoint) Async do server.run @@ -196,7 +196,8 @@ Async do endpoint = Async::HTTP::Endpoint.parse("http://localhost:50051") dispatcher = Async::GRPC::Dispatcher.new dispatcher.register(GreeterService.new(GreeterInterface, "hello.Greeter")) - server = Async::HTTP::Server.for(endpoint, dispatcher) + server = Async::HTTP::Server.new(dispatcher, endpoint) + server_task = Async{server.run} # Setup client client_endpoint = Async::HTTP::Endpoint.parse("http://localhost:50051") @@ -209,6 +210,6 @@ Async do response = stub.say_hello(request) puts response.message # => "Hello, World!" - server.run + server_task.stop end ``` diff --git a/lib/async/grpc/dispatcher.rb b/lib/async/grpc/dispatcher.rb index a334251..65168a6 100644 --- a/lib/async/grpc/dispatcher.rb +++ b/lib/async/grpc/dispatcher.rb @@ -27,7 +27,7 @@ module GRPC # dispatcher.register(GreeterService.new(GreeterInterface, "hello.Greeter")) # dispatcher.register(WorldService.new(WorldInterface, "world.Greeter")) # - # server = Async::HTTP::Server.for(endpoint, dispatcher) + # server = Async::HTTP::Server.new(dispatcher, endpoint) class Dispatcher < Protocol::GRPC::Middleware # Initialize the dispatcher. # @parameter app [#call | Nil] The next middleware in the chain diff --git a/lib/async/grpc/service.rb b/lib/async/grpc/service.rb index b9ef7bc..30ecf48 100644 --- a/lib/async/grpc/service.rb +++ b/lib/async/grpc/service.rb @@ -34,7 +34,7 @@ module GRPC # # Register with dispatcher: # dispatcher = Dispatcher.new # dispatcher.register(GreeterService.new(GreeterInterface, "hello.Greeter")) - # server = Async::HTTP::Server.for(endpoint, dispatcher) + # server = Async::HTTP::Server.new(dispatcher, endpoint) class Service # Initialize a new service instance. # @parameter interface_class [Class] The interface class (subclass of Protocol::GRPC::Interface) From c50efc2b27da7ace0409be97896f2f5fbbc5e148 Mon Sep 17 00:00:00 2001 From: Samuel Williams Date: Sat, 31 Oct 2026 11:13:21 +1300 Subject: [PATCH 2/2] Simplify server task, close client, and use HTTP/2 in complete example. Co-Authored-By: Claude Opus 5.5 --- context/getting-started.md | 15 ++++++++------- guides/getting-started/readme.md | 15 ++++++++------- 2 files changed, 16 insertions(+), 14 deletions(-) diff --git a/context/getting-started.md b/context/getting-started.md index 5aa600c..f75d19a 100644 --- a/context/getting-started.md +++ b/context/getting-started.md @@ -192,24 +192,25 @@ class GreeterService < Async::GRPC::Service end Async do - # Setup server + # Setup server endpoint = Async::HTTP::Endpoint.parse("http://localhost:50051") dispatcher = Async::GRPC::Dispatcher.new dispatcher.register(GreeterService.new(GreeterInterface, "hello.Greeter")) server = Async::HTTP::Server.new(dispatcher, endpoint) - server_task = Async{server.run} + server_task = server.run - # Setup client - client_endpoint = Async::HTTP::Endpoint.parse("http://localhost:50051") + # Setup client (gRPC requires HTTP/2): + client_endpoint = Async::HTTP::Endpoint.parse("http://localhost:50051", protocol: Async::HTTP::Protocol::HTTP2) http_client = Async::HTTP::Client.new(client_endpoint) client = Async::GRPC::Client.new(http_client) stub = client.stub(GreeterInterface, "hello.Greeter") - # Make a call + # Make a call request = Hello::HelloRequest.new(name: "World") response = stub.say_hello(request) puts response.message # => "Hello, World!" - - server_task.stop +ensure + client&.close + server_task&.stop end ``` diff --git a/guides/getting-started/readme.md b/guides/getting-started/readme.md index 5aa600c..f75d19a 100644 --- a/guides/getting-started/readme.md +++ b/guides/getting-started/readme.md @@ -192,24 +192,25 @@ class GreeterService < Async::GRPC::Service end Async do - # Setup server + # Setup server endpoint = Async::HTTP::Endpoint.parse("http://localhost:50051") dispatcher = Async::GRPC::Dispatcher.new dispatcher.register(GreeterService.new(GreeterInterface, "hello.Greeter")) server = Async::HTTP::Server.new(dispatcher, endpoint) - server_task = Async{server.run} + server_task = server.run - # Setup client - client_endpoint = Async::HTTP::Endpoint.parse("http://localhost:50051") + # Setup client (gRPC requires HTTP/2): + client_endpoint = Async::HTTP::Endpoint.parse("http://localhost:50051", protocol: Async::HTTP::Protocol::HTTP2) http_client = Async::HTTP::Client.new(client_endpoint) client = Async::GRPC::Client.new(http_client) stub = client.stub(GreeterInterface, "hello.Greeter") - # Make a call + # Make a call request = Hello::HelloRequest.new(name: "World") response = stub.say_hello(request) puts response.message # => "Hello, World!" - - server_task.stop +ensure + client&.close + server_task&.stop end ```