# erldistpy Native Python client for our Erlang distribution protocol. Talk Erlang/Elixir nodes from CPython without HTTP shim layers. Built to swap into `unfeed`'s `WalletTransport` so a Python web app can call `Unsandbox.WalletRPC` over native dist instead of HTTPS. Same gen_call semantics, lower latency, fewer moving parts. ## Status Phase 0 — repo bones. See `docs/ROADMAP.md` for the phase plan. ## Quick start ```bash make bootstrap # create venv, install editable + dev deps make test # run pytest make lint # ruff check ``` ## Scope - ETF (External Term Format) codec — encode/decode Erlang terms - EPMD client — node name → port lookup - Distribution handshake — cookie auth, version negotiation - gen_call to registered processes on a remote node - TLS dist support (Erlang `inet_tls_dist`) Out of scope: full Erlang node impersonation, link/monitor lifecycles, distributed Mnesia. We are a *client*, not a peer node. ## Why not Pyrlang? Pyrlang implements a full asyncio Erlang node. Heavy, asyncio-first, complex. We need a small synchronous client that fits behind the same `WalletTransport` Protocol as `httpx`. Different shape. ## License Unlicense (public domain).