pypi falcon 4.3.0

one day ago

Falcon 4.3.0 centers on request parsing and typing enhancements.

🐍 Falcon 4.3.0 on PyPI
📚 Changelog on RtD

On the parsing side, this release introduces a family of new Request methods for extracting structured data from the query string – get_param_as_dict(), get_param_as_media(), and get_query_string_as_media() – together with a new delimiter argument for get_param_as_list(). Several of these align with OpenAPI v3 (and 3.2) parameter styles, making it easier to implement spec-compliant APIs on top of Falcon.

On the typing side, our internal annotations are now strict enough for the project to pass mypy --strict falcon/, and generic App types are now automatically parametrized by the default request/response types on CPython 3.13+.

This release also brings a number of smaller improvements, including MessagePack support in the test client, an opt-in on_request() default responder, and hardening of falcon.secure_filename() against Windows reserved device names.

Two features that we had hoped to land in 4.3 – response teardown callbacks and a native OpenTelemetry integration – did not make the cut in time. Both are now at the top of our priority list for Falcon 4.4.

On the security front, our GitHub Actions workflows are now audited with zizmor, and we have hardened the existing workflows to address the issues it surfaced. Thanks to @woodruffw for maintaining this excellent tool!

This release also incorporates many pull requests submitted by our community. Sincere thanks to all 19 contributors who made this release possible!

Don't miss a new falcon release

NewReleases is sending notifications on new releases.