v4.3.1
Performance and maintenance release. No API or behavior changes.
Performance
- PostgresBucket — weighted puts insert all rows in a single statement (
generate_series) instead of one INSERT per unit: ~3.4× faster, shorterEXCLUSIVElock hold. (#296) - PostgresBucket — every rate's windowed count is computed in one query (
COUNT(*) FILTER) instead of one round trip per rate: ~2× faster multi-rate checks. (#297) SingleBucketFactory.wrap_item— inlined sync fast path (no per-acquire closures), ~23% faster wrapping. (#296)- Deduplicated the sync/async deadline math in
_delay_waiter. (#294)
Documentation
- README rewritten for accuracy, structure, and presentation; the outdated architecture image is replaced with a component-level Mermaid diagram (renders on GitHub and ReadTheDocs). (#293, #295)
CI
- GitHub Actions moved off the deprecated Node-20 runtime to Node-24. (#295)
Full changelog: https://github.com/vutran1710/PyrateLimiter/blob/master/CHANGELOG.md