- Relax yarl version requirements to avoid potential dependency conflicts in the downstream Backend.AI platform (#28)
- Stabilize ZMQ RPC auth and malformed packet handling (#27)
- Update dependencies including pyzmq ('>=23' → '>=25.1.1' to support Python 3.12) and development tools including ruff to replace the black formatter (#26)
- Prevent leaking secret keys in the logs and allow infinite timeouts on connection pings (#24)
- Now it requires Python 3.11 to work!
- Implement the full version of secure, encrypted RPC communication based on ZeroMQ's ZAP protocol using CURVE keypairs (#21)
- Fix pyzmq attribute error on Ubuntu 20.04 at aarch64, which is built using older libzeromq without some socket monitoring event constants, by loading the constant declarations dynamically (#20)
- Add explicit
task_done()
call to the output queue ofrpc.Peer
instances to avoid potential missing wakeup on joined coroutines (#16)
- lower.zeromq: Add a transport option to attach monitors for logging underlying socket events (#17)
- Improve
zsock_opts
handling when explicitly specified by the library users, as previously it caused argument errors in binders and connectors (#18)
- Provide
repr()
of exceptions in RPC user/internal errors for better application-level error logging (#15)
upper.rpc
: Support server-side cancellation and propagation to clients by adding theCANCELLED
RPC message type (#14)
- Drop use of aiojobs in favor of native semaphores for limiting the task concurrency and less clutters on job scheduling semantics (#14)
- Stability updates for the RPC layer: (#14)
- Fix wrong message sequence calcuation with
SEQ_BITS
and clarify the roles ofcleanup()
andcancel()
methods in the schedulers. - Now we use the exit-ordered scheduler by default.
- Fix wrong message sequence calcuation with
- lower.zeromq: Use destroy() for zmq context termination to improve stability and shutdown open socekts cleanly (#13)
- Fix a race condition due to overlapping RPC message sequence IDs by separating server/client message sequence IDs (#12)
- Adopt towncrier for changelog management (#11)
- FIX: Mitigate bogus KeyError when cleaning up task futures in RPC servers that has caused event loop spinning.
- MAINTENANCE: Update dependencies and only specify the minimum versions since Callosum is a library.
-
FIX: wrong typing of
RPCMessage.body
field -
IMPROVE: Add
debug_rpc
option torpc.Peer
for logging exceptions in RPC scheduler and user-defined handlers explicitly. -
Update dependencies and remove unused ones.
- First public release with a working RPC based on ZeroMQ DEALER/ROUTER sockets.
- Started the project.