informix-db/README.md
Ryan Malloy f202dbce0c Initialize Phase 0 spike scaffold
Project goal: pure-Python implementation of the Informix SQLI wire
protocol. No CSDK, no JVM, no native deps. Targets icr.io/informix
/informix-developer-database (port 9088) as the dev/test instance.

Phase 0 is a documentation-only spike that gates all implementation
work. The four scaffolds:

- README.md: project status and Phase 0 deliverable index
- docs/PROTOCOL_NOTES.md: byte-level wire-format reference (TBD)
- docs/JDBC_NOTES.md: reverse-lookup index into the decompiled IBM
  JDBC driver (4.50.4.1), populated from build/jdbc-src/ once the
  decompile lands
- docs/DECISION_LOG.md: running rationale, with the Phase-1 paramstyle
  /Python-floor/autocommit decisions pre-locked so they don't churn
  later

CLAUDE.md is gitignored — operator-private context, public-PyPI repo.
2026-05-02 13:22:28 -06:00

1.1 KiB

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 decompilation
  • docs/JDBC_NOTES.md — index into the decompiled IBM JDBC driver's wire-protocol classes
  • docs/DECISION_LOG.md — running rationale for protocol/auth/type decisions
  • docs/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.