# `cache` — Utilities for implementing caches

New in version 0.9: This module was added in version 0.9.

class `aioxmpp.cache.``LRUDict`(**kwargs)

  Size-restricted dictionary with Least Recently Used expiry policy.

  New in version 0.9.

  The `LRUDict` supports normal dictionary-style access and implements `collections.abc.MutableMapping`.

  When the `maxsize` is exceeded, as many entries as needed to get below the `maxsize` are removed from the dict. Least recently used entries are purged first. Setting an entry does not count as use!

  `maxsize`

    Maximum size of the cache. Changing this property purges overhanging entries immediately.

    If set to `None`, no limit on the number of entries is imposed. Do not use a limit of `None` for data where the key is under control of a remote entity.

    Use cases for `None` are those where you only need the explicit expiry feature, but not the LRU feature.