Skip to content

Refactor/protocol bridge and docs - #8

Open
ecamuto wants to merge 3 commits into
mainfrom
refactor/protocol-bridge-and-docs
Open

Refactor/protocol bridge and docs#8
ecamuto wants to merge 3 commits into
mainfrom
refactor/protocol-bridge-and-docs

Conversation

@ecamuto

@ecamuto ecamuto commented Jul 4, 2026

Copy link
Copy Markdown
Owner

No description provided.

ecamuto and others added 3 commits June 29, 2026 12:46
The protocol bridge and real WebSocket/PostgreSQL/MySQL/MongoDB work landed
in code, but several docs still described the pre-bridge state. Reconcile them
against the verified code state:

- SECURITY_AUDIT.md: flip V6/V8/V11/V14 from Open to Fixed (table, prose, and
  summary), with code refs; add V15 (SQL/NoSQL injection surface in the now-real
  DB backends — PQexec/mysql_query/mongoc run query strings verbatim, no
  parameter binding) as a By-design trust-boundary note alongside V13; drop the
  stale hardcoded test count.
- CODE_ANALYSIS.md: cross-ref V15; rewrite the "Missing C Extension Protocol
  Bindings" section as resolved (all TCP/UDP/MQTT/Database methods are exposed);
  mark real-WS / real-DB / bindings future-enhancement items done.
- CONTRIBUTOR_GUIDE.md: WebSocket and Database file table entries say real (not
  Simulated); section 8 functional-gaps/cleanups checklists marked resolved and
  defer the live backlog to TODO.md.
- docs/site/{architecture,protocols,troubleshooting,roadmap,contributing}.html:
  remove the "bindings not exposed / AttributeError" callouts, add the protocol
  PyMethodDef rows to the architecture method table, retarget the AttributeError
  troubleshooting entry at a stale build, and correct the roadmap capability
  lines and known-issues table (kept distributed testing as a genuine gap, added
  a V15 row).

Verified against code: 16 protocol PyMethodDef entries present; WS/DB real via
HAVE_* macros; PQexec/mysql_query run raw query strings. Full suite green
(273 passed, 12 skipped).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
- Add shared OpenSSL-based TLS transport (src/protocols/tls_transport.c,
  gated by HAVE_OPENSSL) supporting tcp_connect/mqtt_connect with
  use_tls and tls_verify options (mqtts), TLS 1.2+, SNI, platform CA
  store, and hostname verification; builds lacking OpenSSL now fail
  TLS requests explicitly instead of silently degrading
- Wire tls_transport.c into Makefile (release and debug object targets)
  and install libssl-dev in CI apt dependencies
- Make HTTP response buffers grow dynamically to actual response size
  instead of truncating at 64 KiB (body) / 8 KiB (headers), with a
  256 MiB per-response cap; http_response_t now owns heap buffers
  freed via http_response_free()
- Fix double-unlock of the MQTT pool mutex on the successful
  mqtt_connect path (undefined behavior)
- Update CHANGELOG.md with the above entries
Add `Engine.capabilities()` to report per-protocol status (`real`,
`simulated`, or `not_implemented`, plus per-database backend detail and
a `tls` bool), derived from compile-time feature macros
(HAVE_CURL_WEBSOCKETS, HAVE_LIBPQ, HAVE_MYSQL, HAVE_MONGOC,
HAVE_OPENSSL). Also emit a one-time stderr warning the first time a
simulated WebSocket or database operation actually executes, so
synthetic numbers can't silently pass for a real load test.

Implement `get_capabilities()` on both the C-backed Engine and the
pure-Python fallback engine, and document the new API in README.md
and CHANGELOG.md.
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.

1 participant