the wire protocol

Next Topic
 
classic Classic list List threaded Threaded
4 messages Options
Reply | Threaded
Open this post in threaded view
|

the wire protocol

Catonano
Hello,

there's this Python project using the so called wire protocol (as far as I understand)


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 Postgresql, their code is too complicated for me

Do they use the C library, libpq ?
Or do they manage the connection in their own code ?

Should I use libpq ?
Or should I manage the connection in my own code ?

In Guile I can manipulate sockets and the semantics are pretty close to the ones of plain C

So even an example in C would be fine

I'd like to use a Unix socket

I hope this was the right mailing list for this question

If it's not, i apologize

Thanks in advance

Reply | Threaded
Open this post in threaded view
|

Re: the wire protocol

Dmitry Igrishin
сб, 19 янв. 2019 г. в 16:56, Catonano <[hidden email]>:

>
> 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 Postgresql, 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 decide.

> In Guile I can manipulate sockets and the semantics are pretty close to the 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.

Reply | Threaded
Open this post in threaded view
|

Re: the wire protocol

John DeSoi
In reply to this post by Catonano

> On Jan 19, 2019, at 7:56 AM, Catonano <[hidden email]> wrote:
>
> 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 Postgresql, their code is too complicated for me


Here is a Common Lisp library that uses sockets and the wire protocol to work with Postgres.

https://github.com/marijnh/Postmodern

Should be very close to what you want to do with Guile/Scheme.

John DeSoi, Ph.D.


Reply | Threaded
Open this post in threaded view
|

Re: the wire protocol

Tony Locke
Hi, pg8000 is a pure-python implementation of the wire protocol:


Might be of help.

-Tony

On Tue, 22 Jan 2019, 03:25 John DeSoi <[hidden email] wrote:

> On Jan 19, 2019, at 7:56 AM, Catonano <[hidden email]> wrote:
>
> 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 Postgresql, their code is too complicated for me


Here is a Common Lisp library that uses sockets and the wire protocol to work with Postgres.

https://github.com/marijnh/Postmodern

Should be very close to what you want to do with Guile/Scheme.

John DeSoi, Ph.D.