- test runs now cover all backends automatically, so multiple invocations of pytest are no longer needed
- revise dependency management. The default requirements are strictly for purerpc's direct dependencies. Use requirements extra "grpc" for grpc runtime and stub generation. Use "dev" for running tests or examples, using the test_utils module, etc.
- fix server end-of-stream handling, where normal client disconnects were being logged as exceptions
- add Server.serve_async(), allowing the grpc server to run concurrently with other async tasks. (Server.serve() is deprecated.)
- upgrade anyio dependency, which will resolve conflicts when trying to use purerpc together with other packages depending on anyio
- drop curio backend support (since anyio has dropped it)
- drop Python 3.5, 3.6 support
Release 0.6.1 (2020-04-13)
Release 0.6.0 (2020-04-13)
- Add TLS Support
Release 0.5.2 (2019-07-23)
- additional exception shielding for asyncio (3cbd35c)
Release 0.5.1 (2019-07-23)
- async generators on python 3.5 (1c19229)
Release 0.5.0 (2019-07-23)
- can now pass contextmngr or setup_fn/teardown_fn to add_service (208dd95)
Release 0.4.1 (2019-07-22)
- remove undocumented use of raw_socket in anyio (6de2c9a)
Release 0.4.0 (2019-07-22)
- speed improvements (1cb3d46)
- add state property to GRPCStream (0019d8c)
- answer PING frames (c829901)
- change MAX_CONCURRENT_STREAMS from 1000 to 65536 (d2d461f)
- decouple h2 and grpclib logic (1f4e6b0)
- support percent-encoded grpc-message header (c6636f4)
- change default max message length to 32 MB
Release 0.3.2 (2019-02-15)
- fix dependencies, remove some of anyio monkey patches (ac6c5c2)
Release 0.3.1 (2019-02-15)
- fix pickling error in purerpc.test_utils._WrappedResult (9f0a63d)
Release 0.3.0 (2019-02-14)
- purerpc.test_utils.PureRPCTestCase is removed
Release 0.2.0 (2019-02-10)
- add backend option to Server.serve (5f47f8e)
- add support for Python 3.5 (a681192)
- improved exception handling in test utils (b1df796)
- migrate to anyio (746b1c2)
- Server and test now use asyncio event loop by default, this behaviour can be changed with PURERPC_BACKEND environment variable
- purerpc.Channel is removed, migrate to purerpc.insecure_channel async context manager (now supports correct shutdown)
- Allow passing request headers to method handlers in request argument
- Allow passing custom metadata to method stub calls (in metadata optional keyword argument)
- Enforce SO_KEEPALIVE with small timeouts
- Expose PureRPCTestCase in purerpc API for unit testing purerpc services
- Speed up protoc plugin
- Fix long description on PyPI
- Fix unit tests on Python 3.7
- Implement immediate mode
- Initial release