Skip to content

Add raw server message API - #10

Merged
ychwu merged 3 commits into
ychwu:mainfrom
iSayZes:feat/raw-messages
Oct 14, 2026
Merged

ychwu merged 3 commits into
ychwu:mainfrom
iSayZes:feat/raw-messages

Conversation

@iSayZes

@iSayZes iSayZes commented Oct 12, 2026 •

Copy link
Copy Markdown
Contributor

Part of #9. This is the raw part, split out as you asked.

Adds bdo_toolkit.raw: replay_raw, RawReplay, LiveRawSession, RawMessage, RawCaptureHealth and DEFAULT_RAW_EVENT_QUEUE_SIZE (16,384, since raw traffic reaches thousands of messages per second at login).

  • Every message from server to client, framed, with no profile or decoding.
  • Shared plumbing in _tracked_capture.py, which the telemetry and combat decoders build on too: TrackedFlowManager, TrackedReplay, TrackedLiveSession and CaptureHealth (with messages_observed).
  • CHANGELOG entry under "Unreleased" and a README capability row.
  • Tests in tests/test_raw.py: framing across split packets, to_dict, Ethernet padding, attaching in the middle of a stream, the port filter, closing early, a missing file, the live session, the queue default and the public export.

pytest -q -W error and mypy src/bdo_toolkit pass, and CI is green on the fork.

TrackedFlowManager, TrackedReplay and TrackedLiveSession feed every framed server message to one tracker and count them; CaptureHealth reports packets, messages, gaps, evictions and native drops. Position, resource and raw decoding build on it.
Every length-framed server-to-client message, opcode-free: no profile, decoding or decryption. Streaming bounded replay and a single-use live session; TCP gaps and flow evictions are counted in health, not raised, and per-message stream sequences show where bytes are missing.
@ychwu
ychwu merged commit 540a510 into ychwu:main Oct 14, 2026
2 checks passed
@iSayZes
iSayZes deleted the feat/raw-messages branch October 15, 2026 16:17
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