emqtt's transitive `quicer` dep needs CMake + msquic submodule clones to build, which the slim Debian builder image doesn't ship — the prod CI build was failing inside `mix deps.compile`. Tortoise311 is the obvious pure-Elixir alternative but it bundles a gen_state_machine + retry/inflight stack we don't use because we're subscribe-only at QoS 0. Implementing the wire protocol inline is ~150 lines in `Microwaveprop.Pskr.Mqtt` (CONNECT/SUBSCRIBE/PINGREQ/DISCONNECT builders, CONNACK/PUBLISH/SUBACK/PINGRESP parser, varint codec). Pskr.Client now uses :gen_tcp with `active: :once` framing, buffers partial reads, schedules its own keepalive, and parses inbound packets in a tight loop. Drops `BUILD_WITHOUT_QUIC=1` from the Dockerfile — no longer relevant since there's no native dep at all in the build chain now. |
||
|---|---|---|
| .. | ||
| microwaveprop | ||
| microwaveprop_web | ||
| mix/tasks | ||
| microwaveprop.ex | ||
| microwaveprop_web.ex | ||