Python client API

Is there a community standard python API for EventStore or is this something I should start working on?

There is not currently one for python however the http api should not
take more than an afternoon to get working (its atom feeds). The TCP
api obviously would take much longer :slight_smile:

Thanks for the really quick response, I am looking through the docs now to implement an HTTP client.

The http api is reasonably well documented but there are always some
issues in docs. Let us know if you run across any questions or
comments how we can improve the documentation.

Cheers,

Greg

Hi Joe - is this something you’ve posted code for in GitHub? I’d be very interested in seeing come to life as well.

We wrote a consumer in Python https://github.com/madedotcom/atomicpuppy

The code is due a fairly major overhaul, but it’s working for us in production without any problems. At some point I’d like to add TCP support, for which we have some prototypes.

– B

@Bob Gregory

Hi

These TCP prototypes are they on Github?

I have started writing a C client which could likely be wrapped for
python. I need some time to finish it though. This may be a better
alternative than writing native python as it can be reused by other
languages as well

@greg +1 open to contribution?

Abso-f'ing-lutely :slight_smile: https://github.com/gregoryyoung/libesclient

And do enjoy wtfuuid.c

Just wanted to mention there’s now a Python gRPC client for EventStoreDB on PyPI:

Also an extension package for the Python eventsourcing library that uses this client:

Nice work @jabywater!

1 Like

Thank you @yorick.laupa!

Hello! I’ll reopen the conversation to tell you that I was finally able to dedicate some time back to the EventStore python grpc client that I started working on a year ago-ishhh, you can find it here.

I’m looking forward to publish it on pypi soon. It covers most of the endpoints (including persistent subscriptions, projections, …).
I’m working at the tests, but it would be nice having some feedback for bugs or use cases I’m missing, improvements and such!