Skip to content

Websockets support#17

Merged
Zewsic merged 2 commits into
masterfrom
claude/inspiring-euler-sp0xnl
Jun 15, 2026
Merged

Websockets support#17
Zewsic merged 2 commits into
masterfrom
claude/inspiring-euler-sp0xnl

Conversation

@Zewsic

@Zewsic Zewsic commented Jun 15, 2026

Copy link
Copy Markdown
Collaborator

No description provided.

claude added 2 commits June 15, 2026 09:20
- New WSTransport / WSAcceptor speaking the SFS2X v2.13+ binary
  WebSocket sub-protocol on ws:// and wss:// (default path
  /BlueBox/websocket). Each WS binary frame carries one full SFS2X
  packet so the existing codec is reused as-is.
- Transport base: replaces ad-hoc ConnectionError strings with a
  dedicated TransportClosedError, moves host/port to plain attributes,
  documents the _recv_raw contract.
- Acceptor base: promoted from typing.Protocol to a real ABC with a
  start/close/__aenter__/__aexit__ lifecycle and an accept() async
  iterator, removing the leaky producer-task pattern.
- TCPTransport: classmethod _from_streams() replaces the previous
  private-attribute mutation on accept; TCPAcceptor now plugs into the
  new Acceptor lifecycle.
- factory.py: scheme dispatch covering tcp / ws / wss with sensible
  default ports and paths.
- pyproject: websockets>=12 added as a runtime dependency,
  pycryptodome moved to the [crypto] optional extras.
- tests: new ws:// echo roundtrip alongside the TCP one.
- readme: full rewrite with the new transport surface, URL table and
  TLS notes.
@Zewsic Zewsic merged commit 186e88b into master Jun 15, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants