Other Blog Posts

Pyruvate 1.5.0 PyPI release

2025-07-24

Pyruvate WSGI server version 1.5.0 has been published today. Install or update with:

pip install -U pyruvate

Pyruvate 1.5.0 comes with a number of significant changes compared to Pyruvate 1.4 that are however internal in nature and hence backward compatible:

  • The most important change in Pyruvate 1.5 is the switch back to PyO3 as the Python interface, using its - relatively new - Bound-API. This API was not available at the time of Pyruvate 1.3.0rc2, resulting in degraded performance back then (and the subsequent use of pyo3-ffi in Pyruvate 1.4). This is no longer an issue and the current benchmarks actually hint at a performance improvement compared to Pyruvate 1.4. Also, using PyO3 as the Python interface will certainly simplify the work needed to support new Python versions and platforms.
  • As a consequence of re-introducing PyO3 Pyruvate 1.5.0 now uses maturin as the build system.
  • More robust tests. Some changes to the test code were necessary because of the switch to PyO3, but also a couple of race conditions have been eliminated, resulting in more robust tests.
  • Binary wheels for MacOS are returning - many thanks to pbauer who provides them and volunteered for co-maintaining the Pyruvate PyPI project.

There were only insignificant changes since the first 1.5 release candidate (some trove classifiers were added and a clippy warning has been fixed). Supported Python versions are 3.9 through 3.13, the same as for Pyruvate 1.4.