- 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.Peerinstances 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_optshandling 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 theCANCELLEDRPC 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_BITSand 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.bodyfield -
IMPROVE: Add
debug_rpcoption torpc.Peerfor 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.