The user's global ~/.gitignore_global excludes *.log universally, which silently dropped our docs/CAPTURES/*.socat.log files from the previous Phase 0 commit. Add explicit negation rules in the project .gitignore so the spike capture deliverables are tracked. Captured under socat MITM relay (host:9090 → container:9088, hex-dump both directions), driven by tests/reference/RefClient.java: - 01-connect-only.socat.log: bare login + disconnect (~1.7 KB) - 02-select-1.socat.log: SELECT 1 round-trip (~6.7 KB) - 02-dml-cycle.socat.log: CREATE TEMP + INSERT + SELECT (~9.9 KB) These are referenced from PROTOCOL_NOTES.md §12 as the canonical ground-truth for the wire-format claims.
informix-db
Pure-Python driver for IBM Informix IDS, speaking the SQLI wire protocol over raw sockets. No IBM Client SDK. No JVM. No native libraries.
Status
🚧 Phase 0 — Spike. Characterizing the SQLI wire protocol. No library code yet.
The protocol has never been published byte-for-byte by IBM. Every existing Informix driver in every language wraps either IBM's CSDK or the JDBC JAR. This project closes that gap.
Phase 0 deliverables
docs/PROTOCOL_NOTES.md— byte-level wire-format reference, derived from packet captures + JDBC decompilationdocs/JDBC_NOTES.md— index into the decompiled IBM JDBC driver's wire-protocol classesdocs/DECISION_LOG.md— running rationale for protocol/auth/type decisionsdocs/CAPTURES/*.pcap— annotated packet captures of reference exchanges
If Phase 0's exit criteria are met, library implementation begins in Phase 1.
Test target
icr.io/informix/informix-developer-database (port 9088, native SQLI). See tests/docker-compose.yml once Phase 1 lands.
License
MIT.
Description
Pure-Python driver for IBM Informix IDS — speaks the SQLI wire protocol over a raw socket. No CSDK, no JVM, no native libraries.
https://informix-db.warehack.ing
Languages
Python
85.6%
MDX
8.1%
CSS
2.1%
Java
1.7%
Astro
1%
Other
1.4%