kollabor-rpc
kollabor-rpc is the lightweight RPC transport foundation for Kollabor daemon
and attach-mode state access.
It provides request/response models, error types, a method-dispatch server, a client, and Unix-socket transport helpers. The current package is intentionally small and stdlib-only.
Current Role
- Represent RPC requests and responses with stable IDs.
- Dispatch named methods to async handlers.
- Provide client helpers for request/response calls.
- Wrap common RPC errors such as timeout, missing method, and handler failure.
- Provide Unix socket connection helpers with a larger buffer limit.
Architecture
| Module | Responsibility |
|---|---|
models.py |
RpcRequest, RpcResponse, request ID helpers |
errors.py |
RPC exception hierarchy |
server.py |
handler registration and dispatch |
client.py |
request client abstraction |
transport.py |
Unix transport helpers and buffer settings |
Usage
from kollabor_rpc import RpcServer
server = RpcServer()
async def ping(params):
return {"ok": True, "echo": params.get("echo")}
server.register("ping", ping)
reply = await server.handle_wire({
"request_id": "req_1",
"method": "ping",
"params": {"echo": "hello"},
})
Known Gaps
- This package is still a transport foundation; higher-level StateService method contracts live outside the package.
- Wire-format compatibility should be documented alongside the hub/attach socket protocol.
- Current tests focus on integration through hub sockets; package-local unit coverage should grow as the API stabilizes.
Roadmap
Phase 1: Contract docs
- Document the exact frame format used by attach clients and hub sockets.
- Add examples for both direct dispatch and socket-backed clients.
- Clarify which errors are transport failures versus handler failures.
Phase 2: StateService integration
- Keep RPC generic, but document the StateService method namespace that uses it.
- Add contract tests for high-value state methods.
- Add compatibility checks for attached streaming and request/reply flows.
Phase 3: Operational hardening
- Add timeout/cancellation guidance for callers.
- Improve observability for slow handlers and failed frames.
- Keep the package stdlib-only unless a transport dependency becomes essential.
Development
Targeted validation examples:
python -m py_compile packages/kollabor-rpc/src/kollabor_rpc/*.py
python -m pytest tests/test_hub_rpc_integration.py -q
Dependencies
None. This package is intentionally stdlib-only.
License
MIT
Metadata
Release files for kollabor-rpc 0.13.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| kollabor_rpc-0.13.1.tar.gz | 15.7 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| kollabor_rpc-0.13.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 25.9 kB
Release files / kollabor_rpc-0.13.1.tar.gz
| Download URL | kollabor_rpc-0.13.1.tar.gz |
|---|---|
| Size | 15.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
6fa559e7139e7a2b5d0e8ebf5d7c4c07caac838b188993629c4f3d0aecdbd330
|
|
BLAKE2b-256 checksum How to use checksums |
429a2f420c090e3f9f5a4c07767913e26c891771f8e0fd16ccfe65977f0fc59f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.15
|
Release files / kollabor_rpc-0.13.1-py3-none-any.whl
| Download URL | kollabor_rpc-0.13.1-py3-none-any.whl |
|---|---|
| Size | 10.2 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
2600cc26721d3054a256243d32e9918488f2bbc3e7f1526351094b264b66afb3
|
|
BLAKE2b-256 checksum How to use checksums |
be2ad01e43ea5c118b7ecaef1029adea7e240266d87556aadd485ea69fbad285
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.15
|