Re: the wire protocol

Dmitry Igrishin <[email protected]> Sat, 19 Jan 2019 18:16:31 +0300
Newsgroups gmane.comp.db.postgresql.interfaces
Message-ID <CAAfz9KPbpiQuXX1+=55aHoNBXrGnYYsWOKcci1f0Bh4eoN=TLg@mail.gmail.com>
=D1=81=D0=B1, 19 =D1=8F=D0=BD=D0=B2. 2019 =D0=B3. =D0=B2 16:56, Catonano <c=
[email protected]>:
>
> Hello,
>
> there's this Python project using the so called wire protocol (as far as =
I understand)
>
> https://github.com/MagicStack/asyncpg
>
> I'm caressing the idea to create a GNU Guile based project that does the =
same thing
>
> But I don't understand how they manage to get the connection to Postgresq=
l, their code is too complicated for me
>
> Do they use the C library, libpq ?
> Or do they manage the connection in their own code ?
AFAIK, asyncpg implements the frontend/backend protocol described here:
https://www.postgresql.org/docs/current/protocol.html

> Should I use libpq ?
Not necessary.

> Or should I manage the connection in my own code ?
You can implement the protocol yourself in pure Guile. It's up to you to de=
cide.

> In Guile I can manipulate sockets and the semantics are pretty close to t=
he ones of plain C
>
> So even an example in C would be fine
>
> I'd like to use a Unix socket
To do it, first of all you need to familiarize with the
frontend/backend protocol mentioned above.