Back to Explore

aio-libs/multidict

GitHub
1 watchersOpen source

Last release: 4 months ago

Multidict is a Python 3 library that provides dict-like containers for key-value pairs where a key can occur multiple times, preserving insertion order. It is useful for representing HTTP headers and URL query string data, with both regular and proxy multidict classes, plus case-insensitive variants. It also supports optional C extensions for speed.

Project status

  • Actively maintained, with recent development activity (last upstream push on 2026-05-17) and multiple tagged updates across 2025 to 2026 that include both bug fixes and feature work (for example, MultiDict.merge added in v6.6.0).
  • Update cadence appears steady but not rapid, with notable release points every few weeks to a few months (for example, v6.6.4 on 2025-08-11, v6.7.0 on 2025-10-06, v6.7.1 on 2026-01-26).

AI summary generated 2 weeks ago

AI-generated from public sources. May be inaccurate. Report

Recent updates

  • v6.7.1

    4 months ago

    Release v6.7.1 primarily fixes a slow memory leak in the MultiDict implementation. The only production code change is an added Py_DECREF in md_pop_one, with additional updates limited to tests and development/CI tooling.

  • v6.7.0

    7 months ago

    Release 6.7.0 primarily updates contributor infrastructure, including CI to cover CPython 3.14. It also bumps some test and tooling dependencies and adjusts a few test leak checks. No production/runtime code behavior changes are apparent from the provided diff beyond the package version and export list reordering.

  • v6.6.4

    9 months ago

    v6.6.4 is primarily a bug fix release addressing a memory leak in MultiDict/CIMultiDict when deleting values or clearing them. It also adjusts the project’s contributor workflow for coverage reporting by moving the MyPy type precision report upload from Codecov to Coveralls, and adds a regression test to prevent future leak claims.

  • v6.6.3

    11 months ago

    Release v6.6.3 is a small bug fix release focused on stabilizing the C implementation of ``_md_shrink()`` in ``multidict``. The changelog also bumps the package version and includes an extra build flag change for non-debug builds.

  • v6.6.2

    11 months ago

    Release 6.6.2 primarily fixes a C-level memory corruption bug in the internal _md_shrink compaction routine that could lead to segmentation faults and data loss when deleting items from a MultiDict. It also addresses 32-bit debug-build format string issues by switching printf specifiers to portable %zd for Py_ssize_t values, and re-enables 32-bit Linux wheel builds for downstream distribution.

  • v6.6.1

    11 months ago

    Release v6.6.1 focuses on a bug fix ensuring multidict internal state is restored if extend, merge, or update throws. The diff also includes multiple internal refactors in the C extension and Python implementation, plus build flag and version/license metadata adjustments.

  • v6.6.0

    11 months ago

    v6.6.0 adds the new MultiDict.merge API and includes several C-extension performance improvements. It also updates some build and CI behaviors (notably around wheel building and benchmark stability via PYTHONHASHSEED).

    Features
  • v6.5.1

    11 months ago

    Release v6.5.1 is a small patch release that primarily addresses a C-level bug in multidict related to resizing when deleted slots exist. The contributor-facing notes also mention tooling and test/CI refactors.

  • v6.5.0

    11 months ago

    Release 6.5.0 focuses on a major internal storage refactor for MultiDict, replacing the previous array-based item storage with a hash-table based approach to improve key lookup performance. The release notes also mention updated build artifacts for arm64 Windows wheels.

  • v6.4.4

    5/19/2025

    v6.4.4 primarily fixes two segmentation fault scenarios: calling MultiDict.setdefault with a single argument, and directly instantiating the C-extension view types. It also includes internal refactors to have MultiDictProxy and multidict views rely only on the public MultiDict interface, and removes the internal pure-Python _Impl class.