Pyngres

Platform independent applications using Actian Ingres and Vector.

pyngres is a pure Python bindings project for the Actian Ingres and Vector OpenAPI. [1] Pyngres is available for Windows, Linux, and MacOS/Darwin. It is intended to support the development of everything from robust, high-performance enterprise applications delivered using thin or fat clients, to embedded Internet-of-Things (IoT) applications.

There is nothing you can do with C that you cannot do with Python using pyngres. Many things are easier and more convenient using pyngres than using the OpenAPI in C code. This makes pyngres an excellent tool for learning and prototyping, as well as application development.

Pyngres supports:

  • native communication using the Ingres GCA, without ODBC/JDBC/.Net

  • Python asyncio awaitable OpenAPI functions

  • asynchronous callback to Python functions (with Python object closures)

  • multiple concurrent Ingres sessions without multithreading

  • native Ingres GCA tracing

  • the entire Ingres SQL language, including the proprietary extensions

  • query plan caching

  • asynchronous database event (DBEVENT) notification

  • database message handling

  • 2-phase commit and XA transactions

  • API-level tracing using loguru

  • all the Ingres performance diagnostic tracing capabilities, including:

    • execution plan (QEP) display

    • lock tracing

    • I/O tracing

    • log tracing

Pyngres is compatible with asyncio, pyside6.QtAsyncio, or with any other package having a Python asyncio-compatible event-loop. It can therefore be used to develop rich, responsive GUI database applications as well as back-end logic to be hosted by an application server for SaaS.