{"library":"pylru","title":"PyLRU: Least Recently Used (LRU) Cache","description":"Pylru is a pure Python library implementing a Least Recently Used (LRU) cache. It provides a simple dictionary-like interface for `lrucache` and includes classes for wrapping existing dictionary-like objects (`WriteThroughCacheManager`) and functions (`FunctionCacheManager`, `lrudecorator`). The library is efficient, offering constant-time basic operations (lookup, insert, delete). The current version is 1.3.1, with releases happening periodically based on maintenance needs.","language":"python","status":"active","last_verified":"Sun May 17","install":{"commands":["pip install pylru"],"cli":null},"imports":["from pylru import lrucache","from pylru import lrudecorator","from pylru import WriteThroughCacheManager","from pylru import FunctionCacheManager","from pylru import lruwrap"],"auth":{"required":false,"env_vars":[]},"quickstart":{"code":"import pylru\n\n# Create an LRU cache with a maximum size of 3\ncache_size = 3\ncache = pylru.lrucache(cache_size)\n\n# Insert items into the cache\ncache['apple'] = 1\ncache['banana'] = 2\ncache['cherry'] = 3\nprint(f\"Cache after initial inserts: {list(cache.items())}\")\n\n# Access 'apple' - it becomes the most recently used\nprint(f\"Accessed 'apple': {cache['apple']}\")\nprint(f\"Cache order after accessing 'apple': {list(cache.keys())}\")\n\n# Insert a new item - 'banana' (least recently used) should be evicted\ncache['date'] = 4\nprint(f\"Cache after adding 'date': {list(cache.items())}\")\n\n# Test for membership\nprint(f\"Is 'cherry' in cache? {'cherry' in cache}\")\nprint(f\"Is 'banana' in cache? {'banana' in cache}\")\n\n# Using the lrudecorator\n@pylru.lrudecorator(max_size=2)\ndef fibonacci(n):\n    print(f\"Computing fibonacci({n})...\")\n    if n <= 1:\n        return n\n    return fibonacci(n - 1) + fibonacci(n - 2)\n\nprint(\"\\n--- Decorator Example ---\")\nprint(f\"Fib(3): {fibonacci(3)}\") # Computes\nprint(f\"Fib(2): {fibonacci(2)}\") # Computes\nprint(f\"Fib(3): {fibonacci(3)}\") # From cache (most recent)\nprint(f\"Fib(4): {fibonacci(4)}\") # Computes, fib(2) gets evicted as LRU","lang":"python","description":"This example demonstrates the basic usage of `pylru.lrucache` as a dictionary-like object, showing insertions, lookups, and the LRU eviction policy. It also includes a basic example of the `pylru.lrudecorator` for memoizing function calls.","tag":null,"tag_description":null,"last_tested":null,"results":[]},"compatibility":{"tag":null,"tag_description":null,"last_tested":"2026-05-17","installed_version":"1.3.1","pypi_latest":"1.3.1","is_stale":false,"summary":{"python_range":"3.10–3.9","success_rate":100,"avg_install_s":1.6,"avg_import_s":0,"wheel_type":"wheel"},"results":[{"runtime":"python:3.10-alpine","python_version":"3.10","os_libc":"alpine (musl)","variant":"pylru","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":0,"mem_mb":0.1,"disk_size":"17.8M"},{"runtime":"python:3.10-slim","python_version":"3.10","os_libc":"slim (glibc)","variant":"pylru","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":1.5,"import_time_s":0,"mem_mb":0.1,"disk_size":"18M"},{"runtime":"python:3.11-alpine","python_version":"3.11","os_libc":"alpine (musl)","variant":"pylru","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":0,"mem_mb":0.1,"disk_size":"19.7M"},{"runtime":"python:3.11-slim","python_version":"3.11","os_libc":"slim (glibc)","variant":"pylru","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":1.7,"import_time_s":0,"mem_mb":0.1,"disk_size":"20M"},{"runtime":"python:3.12-alpine","python_version":"3.12","os_libc":"alpine (musl)","variant":"pylru","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":0,"mem_mb":0.1,"disk_size":"11.5M"},{"runtime":"python:3.12-slim","python_version":"3.12","os_libc":"slim (glibc)","variant":"pylru","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":1.4,"import_time_s":0,"mem_mb":0.1,"disk_size":"12M"},{"runtime":"python:3.13-alpine","python_version":"3.13","os_libc":"alpine (musl)","variant":"pylru","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":0,"mem_mb":0.3,"disk_size":"11.3M"},{"runtime":"python:3.13-slim","python_version":"3.13","os_libc":"slim (glibc)","variant":"pylru","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":1.5,"import_time_s":0,"mem_mb":0.1,"disk_size":"12M"},{"runtime":"python:3.9-alpine","python_version":"3.9","os_libc":"alpine (musl)","variant":"pylru","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":0,"mem_mb":0.1,"disk_size":"17.3M"},{"runtime":"python:3.9-slim","python_version":"3.9","os_libc":"slim (glibc)","variant":"pylru","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":1.8,"import_time_s":0,"mem_mb":0.1,"disk_size":"18M"}]}}