Skip to main content

Programmable Presto and Postgres Proxies

Project description

Buena Vista: A Programmable Postgres Proxy Server

Buena Vista is a Python library that provides a socketserver-based implementation of the Postgres wire protocol (PDF).

I started working on this project in order to address a common issue that people had when they were using another one of my Python projects, dbt-duckdb: when a long-running Python process is operating on a DuckDB database, you cannot connect to the DuckDB file using the CLI or with a database query tool like DBeaver to examine the state of the database, because each DuckDB file may only be open by a single process at a time. The Buena Vista library makes it possible to work with a DuckDB database from multiple different processes over the Postgres wire protocol, and the library makes it simple enough to run an example that illustrates the idea locally:

pip3 install buenavista
python3 -m buenavista.examples.duckdb_postgres <optional_duckdb_file>

in order to start a Postgres server on localhost:5433 backed by the DuckDB database file that you passed in at the command line (or by an in-memory DuckDB database if you do not specify an argument.) You should be able to query the database via psql in another window by running psql -h localhost -p 5433 (no database/username/password arguments required) or by using the DBeaver Postgres client connection.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

buenavista-0.5.0.tar.gz (24.1 kB view details)

Uploaded Source

Built Distribution

buenavista-0.5.0-py3-none-any.whl (27.7 kB view details)

Uploaded Python 3

File details

Details for the file buenavista-0.5.0.tar.gz.

File metadata

  • Download URL: buenavista-0.5.0.tar.gz
  • Upload date:
  • Size: 24.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.6

File hashes

Hashes for buenavista-0.5.0.tar.gz
Algorithm Hash digest
SHA256 3997f9931e709a47b2606cfddd82cc05434119bbdb70de9a0c73f2f0565ef7b8
MD5 ed40c4a2cf647463c2de6b53b0703fba
BLAKE2b-256 a286c4058b8978ce1339b299308ff3bba698cd3ef1e0c3ef72933a96ddf4dcfb

See more details on using hashes here.

File details

Details for the file buenavista-0.5.0-py3-none-any.whl.

File metadata

  • Download URL: buenavista-0.5.0-py3-none-any.whl
  • Upload date:
  • Size: 27.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.6

File hashes

Hashes for buenavista-0.5.0-py3-none-any.whl
Algorithm Hash digest
SHA256 d3281fa4f8fe05adc0c91b73c3ceaa26d9588a53e6eb4ca04a2e06fe28cca964
MD5 9bdfd191f2563c2dd285ce02a68a06fc
BLAKE2b-256 0a90e600732d6f4c1b093dae769ea336606d0c0c50bea8769da42f0caf150691

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page