Skip to content

Commit

Permalink
feat: migrate to anyio
Browse files Browse the repository at this point in the history
BREAKING CHANGE: Server and test now use asyncio event loop by default,
this behaviour can be changed with PURERPC_BACKEND environment variable

BREAKING CHANGE: purerpc.Channel is removed, migrate to
purerpc.insecure_channel async context manager (now supports correct
shutdown)
  • Loading branch information
standy66 committed Feb 1, 2019
1 parent 6ea61e6 commit 746b1c2
Show file tree
Hide file tree
Showing 40 changed files with 463 additions and 304 deletions.
34 changes: 34 additions & 0 deletions commitlint.config.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
module.exports = {
rules: {
'body-leading-blank': [1, 'always'],
'footer-leading-blank': [1, 'always'],
'header-max-length': [2, 'always', 72],
'scope-case': [2, 'always', 'lower-case'],
'subject-case': [
2,
'never',
['sentence-case', 'start-case', 'pascal-case', 'upper-case']
],
'subject-empty': [2, 'never'],
'subject-full-stop': [2, 'never', '.'],
'type-case': [2, 'always', 'lower-case'],
'type-empty': [2, 'never'],
'type-enum': [
2,
'always',
[
'build',
'chore',
'ci',
'docs',
'feat',
'fix',
'perf',
'refactor',
'revert',
'style',
'test'
]
]
}
};
4 changes: 2 additions & 2 deletions misc/greeter/baseline_main.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,8 @@

import grpc

from greeter_pb2 import HelloRequest, HelloReply
from greeter_pb2_grpc import GreeterServicer, add_GreeterServicer_to_server
from generated.greeter_pb2 import HelloReply
from generated.greeter_pb2_grpc import GreeterServicer, add_GreeterServicer_to_server

_ONE_DAY_IN_SECONDS = 60 * 60 * 24

Expand Down
22 changes: 10 additions & 12 deletions misc/greeter/client.py
Original file line number Diff line number Diff line change
@@ -1,9 +1,8 @@
import curio
import time
from purerpc.client import Channel, Client
from greeter_pb2 import HelloRequest, HelloReply
from greeter_grpc import GreeterStub
from purerpc.utils import print_memory_growth_statistics
import purerpc
from generated.greeter_pb2 import HelloRequest
from generated.greeter_grpc import GreeterStub


async def worker(channel):
Expand All @@ -16,14 +15,13 @@ async def worker(channel):

async def main_coro():
# await curio.spawn(print_memory_growth_statistics(), daemon=True)
channel = Channel("localhost", 50055)
await channel.connect()
for i in range(100):
start = time.time()
async with curio.TaskGroup() as task_group:
for i in range(100):
await task_group.spawn(worker(channel))
print("RPS: {}".format(10000 / (time.time() - start)))
async with purerpc.insecure_channel("localhost", 50055) as channel:
for i in range(100):
start = time.time()
async with curio.TaskGroup() as task_group:
for i in range(100):
await task_group.spawn(worker(channel))
print("RPS: {}".format(10000 / (time.time() - start)))


def main():
Expand Down
4 changes: 2 additions & 2 deletions misc/greeter/client_grpcio.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import grpc
from greeter_pb2 import HelloRequest, HelloReply
from greeter_pb2_grpc import GreeterStub
from generated.greeter_pb2 import HelloRequest
from generated.greeter_pb2_grpc import GreeterStub


def main():
Expand Down
Empty file.
File renamed without changes.
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import purerpc
import greeter_pb2
import generated.greeter_pb2


class GreeterServicer(purerpc.Servicer):
Expand All @@ -25,35 +25,35 @@ def service(self) -> purerpc.Service:
self.SayHello,
purerpc.RPCSignature(
purerpc.Cardinality.UNARY_UNARY,
greeter_pb2.HelloRequest,
greeter_pb2.HelloReply,
generated.greeter_pb2.HelloRequest,
generated.greeter_pb2.HelloReply,
)
)
service_obj.add_method(
"SayHelloGoodbye",
self.SayHelloGoodbye,
purerpc.RPCSignature(
purerpc.Cardinality.UNARY_STREAM,
greeter_pb2.HelloRequest,
greeter_pb2.HelloReply,
generated.greeter_pb2.HelloRequest,
generated.greeter_pb2.HelloReply,
)
)
service_obj.add_method(
"SayHelloToMany",
self.SayHelloToMany,
purerpc.RPCSignature(
purerpc.Cardinality.STREAM_STREAM,
greeter_pb2.HelloRequest,
greeter_pb2.HelloReply,
generated.greeter_pb2.HelloRequest,
generated.greeter_pb2.HelloReply,
)
)
service_obj.add_method(
"SayHelloToManyAtOnce",
self.SayHelloToManyAtOnce,
purerpc.RPCSignature(
purerpc.Cardinality.STREAM_UNARY,
greeter_pb2.HelloRequest,
greeter_pb2.HelloReply,
generated.greeter_pb2.HelloRequest,
generated.greeter_pb2.HelloReply,
)
)
return service_obj
Expand All @@ -69,31 +69,31 @@ def __init__(self, channel):
"SayHello",
purerpc.RPCSignature(
purerpc.Cardinality.UNARY_UNARY,
greeter_pb2.HelloRequest,
greeter_pb2.HelloReply,
generated.greeter_pb2.HelloRequest,
generated.greeter_pb2.HelloReply,
)
)
self.SayHelloGoodbye = self._client.get_method_stub(
"SayHelloGoodbye",
purerpc.RPCSignature(
purerpc.Cardinality.UNARY_STREAM,
greeter_pb2.HelloRequest,
greeter_pb2.HelloReply,
generated.greeter_pb2.HelloRequest,
generated.greeter_pb2.HelloReply,
)
)
self.SayHelloToMany = self._client.get_method_stub(
"SayHelloToMany",
purerpc.RPCSignature(
purerpc.Cardinality.STREAM_STREAM,
greeter_pb2.HelloRequest,
greeter_pb2.HelloReply,
generated.greeter_pb2.HelloRequest,
generated.greeter_pb2.HelloReply,
)
)
self.SayHelloToManyAtOnce = self._client.get_method_stub(
"SayHelloToManyAtOnce",
purerpc.RPCSignature(
purerpc.Cardinality.STREAM_UNARY,
greeter_pb2.HelloRequest,
greeter_pb2.HelloReply,
generated.greeter_pb2.HelloRequest,
generated.greeter_pb2.HelloReply,
)
)

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading

0 comments on commit 746b1c2

Please sign in to comment.