Refactor/protocol bridge and docs - #8
Open
ecamuto wants to merge 3 commits into
Open
Conversation
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.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.