{"library":"oslo-cache","title":"oslo.cache","description":"oslo.cache is a Python library providing a generic caching mechanism for OpenStack projects, built as a wrapper around the `dogpile.cache` library. It offers support for memoization, key-value storage, and interfaces to common caching backends like Memcached and Redis. The current version is 4.1.1, and it typically follows the OpenStack release cycle, with new versions released regularly to align with OpenStack development milestones.","language":"python","status":"active","last_verified":"Sun May 17","install":{"commands":["pip install oslo-cache","pip install oslo-cache[dogpile]","pip install oslo-cache[etcd3gw]"],"cli":null},"imports":["from oslo_cache import core as cache","from oslo_cache.exception import ConfigurationError","from oslo_cache.core import create_region","from oslo_cache.core import get_memoization_decorator"],"auth":{"required":false,"env_vars":[]},"quickstart":{"code":"import os\nfrom oslo_config import cfg\nfrom oslo_cache import core as cache\n\nCONF = cfg.CONF\n\ndef register_cache_opts():\n    cache_group = cfg.OptGroup('cache', title='Cache Options')\n    CONF.register_group(cache_group)\n    cache.register_opts(CONF)\n\n# Simulate loading configuration (e.g., from a config file)\n# In a real OpenStack project, this would be handled by oslo.config setup\n# For a simple script, we can set some options directly\nCONF.set_default('backend', 'dogpile.cache.memory', group='cache')\nCONF.set_default('expiration_time', 3600, group='cache')\n\nregister_cache_opts()\ncache.configure(CONF)\n\nexample_cache_region = cache.create_region(name='my_app_cache')\nMEMOIZE = cache.get_memoization_decorator(\n    CONF, example_cache_region, 'cache'\n)\n\n@MEMOIZE()\ndef get_heavy_computation_result(value):\n    print(f\"Performing heavy computation for: {value}\")\n    return value * 2\n\nif __name__ == '__main__':\n    print(get_heavy_computation_result(10))\n    print(get_heavy_computation_result(10)) # This should be cached\n    print(get_heavy_computation_result(20))\n    print(get_heavy_computation_result(20)) # This should be cached","lang":"python","description":"This quickstart demonstrates how to set up and use `oslo.cache` with `oslo.config` for memoization. It initializes a cache region and applies a memoization decorator to a function. The first call to `get_heavy_computation_result` will execute the function, subsequent calls with the same arguments will retrieve the cached value. This example uses the `dogpile.cache.memory` backend, suitable for in-process caching. For production, backends like Memcached or Redis are recommended.","tag":null,"tag_description":null,"last_tested":null,"results":[]},"compatibility":{"tag":null,"tag_description":null,"last_tested":"2026-05-17","installed_version":"3.12.0","pypi_latest":"4.1.1","is_stale":true,"summary":{"python_range":"3.10–3.9","success_rate":100,"avg_install_s":5.4,"avg_import_s":0.64,"wheel_type":"wheel"},"results":[{"runtime":"python:3.10-alpine","python_version":"3.10","os_libc":"alpine (musl)","variant":"oslo-cache","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"noisy","install_time_s":null,"import_time_s":0.56,"mem_mb":11.8,"disk_size":"45.6M"},{"runtime":"python:3.10-alpine","python_version":"3.10","os_libc":"alpine (musl)","variant":"dogpile","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"noisy","install_time_s":null,"import_time_s":0.54,"mem_mb":11.8,"disk_size":"50.5M"},{"runtime":"python:3.10-alpine","python_version":"3.10","os_libc":"alpine (musl)","variant":"etcd3gw","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"noisy","install_time_s":null,"import_time_s":0.54,"mem_mb":11.8,"disk_size":"46.3M"},{"runtime":"python:3.10-slim","python_version":"3.10","os_libc":"slim (glibc)","variant":"oslo-cache","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"noisy","install_time_s":4.9,"import_time_s":0.38,"mem_mb":11.8,"disk_size":"47M"},{"runtime":"python:3.10-slim","python_version":"3.10","os_libc":"slim (glibc)","variant":"dogpile","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"noisy","install_time_s":6,"import_time_s":0.39,"mem_mb":11.8,"disk_size":"52M"},{"runtime":"python:3.10-slim","python_version":"3.10","os_libc":"slim (glibc)","variant":"etcd3gw","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"noisy","install_time_s":5.2,"import_time_s":0.39,"mem_mb":11.8,"disk_size":"48M"},{"runtime":"python:3.11-alpine","python_version":"3.11","os_libc":"alpine (musl)","variant":"oslo-cache","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"noisy","install_time_s":null,"import_time_s":0.86,"mem_mb":13.1,"disk_size":"50.3M"},{"runtime":"python:3.11-alpine","python_version":"3.11","os_libc":"alpine (musl)","variant":"dogpile","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"noisy","install_time_s":null,"import_time_s":0.86,"mem_mb":13.1,"disk_size":"56.1M"},{"runtime":"python:3.11-alpine","python_version":"3.11","os_libc":"alpine (musl)","variant":"etcd3gw","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"noisy","install_time_s":null,"import_time_s":0.89,"mem_mb":13.1,"disk_size":"51.1M"},{"runtime":"python:3.11-slim","python_version":"3.11","os_libc":"slim (glibc)","variant":"oslo-cache","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"noisy","install_time_s":4.9,"import_time_s":0.81,"mem_mb":13.1,"disk_size":"52M"},{"runtime":"python:3.11-slim","python_version":"3.11","os_libc":"slim (glibc)","variant":"dogpile","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"noisy","install_time_s":5.8,"import_time_s":0.79,"mem_mb":13.1,"disk_size":"58M"},{"runtime":"python:3.11-slim","python_version":"3.11","os_libc":"slim (glibc)","variant":"etcd3gw","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"noisy","install_time_s":5.2,"import_time_s":0.84,"mem_mb":13.1,"disk_size":"53M"},{"runtime":"python:3.12-alpine","python_version":"3.12","os_libc":"alpine (musl)","variant":"oslo-cache","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"noisy","install_time_s":null,"import_time_s":0.72,"mem_mb":12.8,"disk_size":"50.5M"},{"runtime":"python:3.12-alpine","python_version":"3.12","os_libc":"alpine (musl)","variant":"dogpile","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"noisy","install_time_s":null,"import_time_s":0.67,"mem_mb":12.8,"disk_size":"56.1M"},{"runtime":"python:3.12-alpine","python_version":"3.12","os_libc":"alpine (musl)","variant":"etcd3gw","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"noisy","install_time_s":null,"import_time_s":0.69,"mem_mb":12.8,"disk_size":"51.2M"},{"runtime":"python:3.12-slim","python_version":"3.12","os_libc":"slim (glibc)","variant":"oslo-cache","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"noisy","install_time_s":4.8,"import_time_s":0.81,"mem_mb":12.8,"disk_size":"52M"},{"runtime":"python:3.12-slim","python_version":"3.12","os_libc":"slim (glibc)","variant":"dogpile","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"noisy","install_time_s":5.7,"import_time_s":0.76,"mem_mb":12.8,"disk_size":"58M"},{"runtime":"python:3.12-slim","python_version":"3.12","os_libc":"slim (glibc)","variant":"etcd3gw","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"noisy","install_time_s":5.2,"import_time_s":0.76,"mem_mb":12.8,"disk_size":"53M"},{"runtime":"python:3.13-alpine","python_version":"3.13","os_libc":"alpine (musl)","variant":"oslo-cache","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"noisy","install_time_s":null,"import_time_s":0.69,"mem_mb":13.5,"disk_size":"50.3M"},{"runtime":"python:3.13-alpine","python_version":"3.13","os_libc":"alpine (musl)","variant":"dogpile","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"noisy","install_time_s":null,"import_time_s":0.67,"mem_mb":13.5,"disk_size":"55.8M"},{"runtime":"python:3.13-alpine","python_version":"3.13","os_libc":"alpine (musl)","variant":"etcd3gw","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"noisy","install_time_s":null,"import_time_s":0.66,"mem_mb":13.5,"disk_size":"51.0M"},{"runtime":"python:3.13-slim","python_version":"3.13","os_libc":"slim (glibc)","variant":"oslo-cache","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"noisy","install_time_s":4.9,"import_time_s":0.71,"mem_mb":13.5,"disk_size":"52M"},{"runtime":"python:3.13-slim","python_version":"3.13","os_libc":"slim (glibc)","variant":"dogpile","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"noisy","install_time_s":5.7,"import_time_s":0.68,"mem_mb":13.5,"disk_size":"57M"},{"runtime":"python:3.13-slim","python_version":"3.13","os_libc":"slim (glibc)","variant":"etcd3gw","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"noisy","install_time_s":5.2,"import_time_s":0.68,"mem_mb":13.5,"disk_size":"53M"},{"runtime":"python:3.9-alpine","python_version":"3.9","os_libc":"alpine (musl)","variant":"oslo-cache","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"noisy","install_time_s":null,"import_time_s":0.54,"mem_mb":11.1,"disk_size":"47.7M"},{"runtime":"python:3.9-alpine","python_version":"3.9","os_libc":"alpine (musl)","variant":"dogpile","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"noisy","install_time_s":null,"import_time_s":0.49,"mem_mb":11.1,"disk_size":"52.0M"},{"runtime":"python:3.9-alpine","python_version":"3.9","os_libc":"alpine (musl)","variant":"etcd3gw","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"noisy","install_time_s":null,"import_time_s":0.48,"mem_mb":11.1,"disk_size":"48.3M"},{"runtime":"python:3.9-slim","python_version":"3.9","os_libc":"slim (glibc)","variant":"oslo-cache","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"noisy","install_time_s":5.7,"import_time_s":0.52,"mem_mb":11.1,"disk_size":"49M"},{"runtime":"python:3.9-slim","python_version":"3.9","os_libc":"slim (glibc)","variant":"dogpile","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"noisy","install_time_s":6.5,"import_time_s":0.47,"mem_mb":11.1,"disk_size":"54M"},{"runtime":"python:3.9-slim","python_version":"3.9","os_libc":"slim (glibc)","variant":"etcd3gw","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"noisy","install_time_s":6,"import_time_s":0.5,"mem_mb":11.1,"disk_size":"50M"}]}}