{"id":11,"library":"chromadb","title":"ChromaDB","description":"Open-source embedded vector database for AI applications. Runs in-process (EphemeralClient, PersistentClient) or client-server mode (HttpClient). Handles embedding storage, metadata filtering, and similarity search. Supports pluggable embedding functions. Core backend rewritten in Rust in 1.x; also ships a lightweight HTTP-only client as the separate chromadb-client package.","status":"active","version":"1.5.5","language":"python","source_language":"en","source_url":"https://docs.trychroma.com","tags":["chromadb","vector-database","embeddings","rag","similarity-search","persistent","in-memory"],"install":[{"cmd":"pip install chromadb","lang":"bash","label":"Full (includes server, embedding deps)"},{"cmd":"pip install chromadb-client","lang":"bash","label":"HTTP client only (lightweight, no server)"}],"dependencies":[{"reason":"Bundled for default embedding function (all-MiniLM-L6-v2). Pulls in ~200MB. Omit by passing your own embedding_function to create_collection().","package":"onnxruntime","optional":false},{"reason":"Required for default embedding function. Same caveat as onnxruntime.","package":"tokenizers","optional":false},{"reason":"Required core dependency.","package":"numpy","optional":false}],"imports":[{"note":"Settings-based Client() init pattern removed in 0.4.0. All pre-0.4 tutorials use it. Causes TypeError or missing attribute errors on current versions.","wrong":"import chromadb\nfrom chromadb.config import Settings\nclient = chromadb.Client(Settings(chroma_db_impl=\"duckdb+parquet\", persist_directory=\"/db\"))","symbol":"EphemeralClient / PersistentClient / HttpClient","correct":"import chromadb\nclient = chromadb.EphemeralClient()  # in-memory\nclient = chromadb.PersistentClient(path=\"/db\")  # disk\nclient = chromadb.HttpClient(host=\"localhost\", port=8000)  # server"}],"quickstart":{"code":"import sys\nif sys.version_info < (3, 9):\n    raise RuntimeError(\"chromadb requires Python 3.9+. Current: \" +\n  sys.version)\n\nimport chromadb\n\n# In-memory (prototyping)\nclient = chromadb.EphemeralClient()\n\n# Persistent (local dev)\n# client =\n  chromadb.PersistentClient(path=\"/path/to/db\")\n\ncollection = client.get_or_create_collection(\"my_docs\")\n\ncollection.add(\n\n  documents=[\"This is doc one\", \"This is doc two\"],\n    ids=[\"id1\", \"id2\"],\n)\n\nresults = collection.query(\n    query_texts=[\"find\n  something\"],\n    n_results=2,\n)\nprint(results)","lang":"python","description":"get_or_create_collection() is idempotent and preferred over create_collection() for most use cases. Python 3.9+ required —\n  chromadb's telemetry dependency (posthog) fails silently on 3.8 with a misleading TypeError."},"warnings":[{"fix":"Replace with chromadb.EphemeralClient() (in-memory), chromadb.PersistentClient(path=...) (disk), or chromadb.HttpClient(host=..., port=...) (server). Old chroma_db_impl=\"duckdb+parquet\" setting is gone entirely.","message":"chromadb.Client(Settings(...)) removed in 0.4.0. Enormous volume of tutorials, LangChain/LlamaIndex integration examples, and LLM-generated code still uses it. Raises AttributeError or TypeError on import.","severity":"breaking","affected_versions":"< 0.4.0"},{"fix":"Back up PersistentClient data directory before upgrading. Use chroma utils migrate CLI if available for the version transition. Pin version in production: pip install chromadb==X.Y.Z.","message":"Database migrations between Chroma versions are irreversible. Upgrading the chromadb package upgrades on-disk data format. Downgrading after upgrade causes data loss or corruption.","severity":"breaking","affected_versions":"all"},{"fix":"Migrate server configuration to a chroma.yaml config file. See docs.trychroma.com/docs/overview/migration for the full config file schema.","message":"Server CORS and auth configuration moved from environment variables to a YAML config file in the 1.x Rust-backed server. Environment variables like CHROMA_SERVER_CORS_ALLOW_ORIGINS and CHROMA_SERVER_AUTH_CREDENTIALS no longer work.","severity":"breaking","affected_versions":">= 1.0.0"},{"fix":"Pass embedding_function=None and provide embeddings= directly, or pre-download by calling the embedding function once explicitly before serving traffic. Use chromadb-client package if you never need local embedding.","message":"Default embedding function downloads ~200MB of model weights (all-MiniLM-L6-v2 via onnxruntime) on first call. First add() or query() call in a new environment hangs while downloading. No progress indicator.","severity":"gotcha","affected_versions":"all"},{"fix":"For multi-process workloads, run chroma run --path ... as a server and connect all clients via HttpClient.","message":"PersistentClient does not support concurrent access from multiple processes. SQLite-backed storage uses file locking. Multiple processes writing to the same path cause database corruption or blocked writes.","severity":"gotcha","affected_versions":"all"},{"fix":"Use explicit operator syntax for all metadata filters: where={\"source\": {\"\": \"arxiv\"}} not where={\"source\": \"arxiv\"}.","message":"collection.query() where= filter uses a specific operator syntax ($eq, $ne, $gt, $gte, $lt, $lte, $in, $nin, $and, $or). Plain dict equality {\"key\": \"value\"} is not valid — must be {\"key\": {\"\": \"value\"}}. Raises ValueError silently in old versions, error in new.","severity":"gotcha","affected_versions":"all"},{"fix":"Disable with: chromadb.EphemeralClient(settings=Settings(anonymized_telemetry=False)) or set environment variable ANONYMIZED_TELEMETRY=False.","message":"Telemetry is enabled by default (sends anonymized usage data to PostHog). Runs on every client init.","severity":"gotcha","affected_versions":"all"},{"fix":"On Alpine Linux, install the necessary build tools and C++ standard library: `apk add build-base libstdc++` before attempting to install chromadb.","message":"Installation fails on Alpine Linux (musl-based distributions) due to missing C/C++ build tools and runtime libraries required by the Rust backend. Specifically, `libgcc_s.so.1` is not found and a `cc` linker is missing, leading to `subprocess.CalledProcessError` during package metadata preparation.","severity":"breaking","affected_versions":">= 1.0.0"}],"env_vars":null,"last_verified":"2026-05-12T19:13:08.803Z","next_check":"2026-06-17T00:00:00.000Z","problems":[{"fix":"Ensure `chromadb` is installed in your current environment: `pip install chromadb` or `poetry add chromadb` (if using Poetry). If using a virtual environment, activate it before installing.","cause":"The `chromadb` package is not installed in the active Python environment or there's a virtual environment misconfiguration, especially when used with other libraries like LangChain.","error":"ModuleNotFoundError: No module named 'chromadb'"},{"fix":"Provide an embedding function (e.g., from `chromadb.utils.embedding_functions` or a custom one) when creating the collection or adding documents. \n\n```python\nimport chromadb\nfrom chromadb.utils import embedding_functions\n\nopenai_ef = embedding_functions.OpenAIEmbeddingFunction(\n    api_key='YOUR_API_KEY', # Replace with your actual OpenAI API key\n    model_name='text-embedding-ada-002'\n)\n\nclient = chromadb.Client()\ncollection = client.create_collection(\n    name='my_collection',\n    embedding_function=openai_ef # Provide the embedding function here\n)\ncollection.add(documents=['Hello world'], ids=['doc1'])\n```","cause":"When using `chromadb` without a default embedding function (e.g., with `chromadb-client` or in a fresh installation without optional dependencies for a default embedder), you must explicitly specify an embedding function when adding documents to a collection.","error":"ValueError: You must provide an embedding function to compute embeddings."},{"fix":"If you intend to run a local client, ensure only the `chromadb` package is installed and there are no conflicting `CHROMA_API_IMPL` environment variables. If you intend to connect to a remote Chroma server, use `chromadb.HttpClient` and ensure the server is running. A common solution is to reinstall `chromadb` in a clean environment.","cause":"This error typically occurs when there's a conflict between installed `chromadb` packages (e.g., `chromadb` and `chromadb-client`) or when attempting to use a local client (like `PersistentClient` or `EphemeralClient`) in an environment configured to only allow the HTTP-only client, often due to an existing server instance or environment variables.","error":"RuntimeError: Chroma is running in http-only client mode, and can only be run with 'chromadb.api.fastapi.FastAPI' as the chroma_api_impl."},{"fix":"Remove the `.persist()` call from your code. If you initialize `Chroma` with a `persist_directory`, data will be saved automatically. \n\n```python\n# Old code (with .persist())\n# vectordb = Chroma.from_documents(documents=texts, embedding=embedding, persist_directory=persist_directory)\n# vectordb.persist() # Remove this line\n\n# Corrected code\nvectordb = Chroma.from_documents(documents=texts, embedding=embedding, persist_directory=persist_directory)\n# Data is automatically persisted if persist_directory is provided\n```","cause":"In newer versions of `chromadb` (specifically since 0.4.x) and its LangChain integration, the `.persist()` method is no longer needed or available because data is automatically persisted to disk when `persist_directory` is specified during client initialization.","error":"AttributeError: 'Chroma' object has no attribute 'persist'"},{"fix":"Flatten your metadata dictionary to ensure all values are primitive types. Remove any nested dictionaries or lists from the metadata before adding documents to the Chroma collection. \n\n```python\n# Example of incorrect metadata\n# metadata = {'source': 'doc1', 'details': {'author': 'John Doe', 'date': '2023-01-01'}}\n\n# Corrected metadata\nmetadata = {'source': 'doc1', 'author': 'John Doe', 'date': '2023-01-01'}\ncollection.add(documents=['My document content'], metadatas=[metadata], ids=['id1'])\n```","cause":"ChromaDB has strict requirements for metadata, only supporting primitive types (strings, numbers, booleans, or `SparseVector`) and `null`. This error occurs when you try to add documents with metadata containing nested objects or arrays.","error":"ValueError: Expected metadata to be a string, number, boolean, SparseVector, or nullable."}],"ecosystem":"pypi","meta_description":null,"install_score":95,"install_tag":"verified","quickstart_score":0,"quickstart_tag":"stale","pypi_latest":"1.5.9","install_checks":{"last_tested":"2026-05-12","tag":"verified","tag_description":"installs cleanly on critical runtimes, fast import, recently tested","results":[{"runtime":"python:3.10-alpine","python_version":"3.10","os_libc":"alpine (musl)","variant":" $EXIT -eq 0 ","exit_code":1,"wheel_type":null,"failure_reason":"build_error","install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.10-alpine","python_version":"3.10","os_libc":"alpine (musl)","variant":" $EXIT -eq 0 ","exit_code":0,"wheel_type":"wheel","failure_reason":null,"install_time_s":null,"import_time_s":2.49,"mem_mb":33.6,"disk_size":"231.5M"},{"runtime":"python:3.10-alpine","python_version":"3.10","os_libc":"alpine (musl)","variant":"default","exit_code":1,"wheel_type":null,"failure_reason":"build_error","install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.10-alpine","python_version":"3.10","os_libc":"alpine (musl)","variant":"default","exit_code":1,"wheel_type":null,"failure_reason":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.10-alpine","python_version":"3.10","os_libc":"alpine (musl)","variant":"default","exit_code":0,"wheel_type":"wheel","failure_reason":null,"install_time_s":null,"import_time_s":2.57,"mem_mb":33.6,"disk_size":"231.5M"},{"runtime":"python:3.10-alpine","python_version":"3.10","os_libc":"alpine (musl)","variant":"default","exit_code":0,"wheel_type":null,"failure_reason":null,"install_time_s":null,"import_time_s":4.33,"mem_mb":33.4,"disk_size":"230.9M"},{"runtime":"python:3.10-slim","python_version":"3.10","os_libc":"slim (glibc)","variant":" $EXIT -eq 0 ","exit_code":0,"wheel_type":"wheel","failure_reason":null,"install_time_s":36.3,"import_time_s":1.79,"mem_mb":36.9,"disk_size":"410M"},{"runtime":"python:3.10-slim","python_version":"3.10","os_libc":"slim (glibc)","variant":" $EXIT -eq 0 ","exit_code":0,"wheel_type":"wheel","failure_reason":null,"install_time_s":15.9,"import_time_s":1.58,"mem_mb":33.5,"disk_size":"292M"},{"runtime":"python:3.10-slim","python_version":"3.10","os_libc":"slim (glibc)","variant":"default","exit_code":0,"wheel_type":"wheel","failure_reason":null,"install_time_s":35.7,"import_time_s":1.67,"mem_mb":36.9,"disk_size":"410M"},{"runtime":"python:3.10-slim","python_version":"3.10","os_libc":"slim (glibc)","variant":"default","exit_code":0,"wheel_type":null,"failure_reason":null,"install_time_s":null,"import_time_s":3.1,"mem_mb":36.9,"disk_size":"406M"},{"runtime":"python:3.10-slim","python_version":"3.10","os_libc":"slim (glibc)","variant":"default","exit_code":0,"wheel_type":"wheel","failure_reason":null,"install_time_s":16,"import_time_s":1.63,"mem_mb":33.5,"disk_size":"292M"},{"runtime":"python:3.10-slim","python_version":"3.10","os_libc":"slim (glibc)","variant":"default","exit_code":0,"wheel_type":null,"failure_reason":null,"install_time_s":null,"import_time_s":3.04,"mem_mb":33.4,"disk_size":"292M"},{"runtime":"python:3.11-alpine","python_version":"3.11","os_libc":"alpine (musl)","variant":" $EXIT -eq 0 ","exit_code":1,"wheel_type":null,"failure_reason":"build_error","install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.11-alpine","python_version":"3.11","os_libc":"alpine (musl)","variant":" $EXIT -eq 0 ","exit_code":0,"wheel_type":"wheel","failure_reason":null,"install_time_s":null,"import_time_s":3.82,"mem_mb":36.4,"disk_size":"249.0M"},{"runtime":"python:3.11-alpine","python_version":"3.11","os_libc":"alpine (musl)","variant":"default","exit_code":1,"wheel_type":null,"failure_reason":"build_error","install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.11-alpine","python_version":"3.11","os_libc":"alpine (musl)","variant":"default","exit_code":1,"wheel_type":null,"failure_reason":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.11-alpine","python_version":"3.11","os_libc":"alpine (musl)","variant":"default","exit_code":0,"wheel_type":"wheel","failure_reason":null,"install_time_s":null,"import_time_s":3.79,"mem_mb":36.4,"disk_size":"249.0M"},{"runtime":"python:3.11-alpine","python_version":"3.11","os_libc":"alpine (musl)","variant":"default","exit_code":0,"wheel_type":null,"failure_reason":null,"install_time_s":null,"import_time_s":5.95,"mem_mb":36.3,"disk_size":"248.3M"},{"runtime":"python:3.11-slim","python_version":"3.11","os_libc":"slim (glibc)","variant":" $EXIT -eq 0 ","exit_code":0,"wheel_type":"wheel","failure_reason":null,"install_time_s":28,"import_time_s":2.73,"mem_mb":39.4,"disk_size":"372M"},{"runtime":"python:3.11-slim","python_version":"3.11","os_libc":"slim (glibc)","variant":" $EXIT -eq 0 ","exit_code":0,"wheel_type":"wheel","failure_reason":null,"install_time_s":13.8,"import_time_s":2.56,"mem_mb":35.6,"disk_size":"309M"},{"runtime":"python:3.11-slim","python_version":"3.11","os_libc":"slim (glibc)","variant":"default","exit_code":0,"wheel_type":"wheel","failure_reason":null,"install_time_s":31.3,"import_time_s":2.63,"mem_mb":39.4,"disk_size":"372M"},{"runtime":"python:3.11-slim","python_version":"3.11","os_libc":"slim (glibc)","variant":"default","exit_code":0,"wheel_type":null,"failure_reason":null,"install_time_s":null,"import_time_s":4.64,"mem_mb":39.4,"disk_size":"372M"},{"runtime":"python:3.11-slim","python_version":"3.11","os_libc":"slim (glibc)","variant":"default","exit_code":0,"wheel_type":"wheel","failure_reason":null,"install_time_s":14.1,"import_time_s":2.65,"mem_mb":35.6,"disk_size":"309M"},{"runtime":"python:3.11-slim","python_version":"3.11","os_libc":"slim (glibc)","variant":"default","exit_code":0,"wheel_type":null,"failure_reason":null,"install_time_s":null,"import_time_s":4.51,"mem_mb":35.6,"disk_size":"309M"},{"runtime":"python:3.12-alpine","python_version":"3.12","os_libc":"alpine (musl)","variant":" $EXIT -eq 0 ","exit_code":1,"wheel_type":null,"failure_reason":"build_error","install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.12-alpine","python_version":"3.12","os_libc":"alpine (musl)","variant":" $EXIT -eq 0 ","exit_code":0,"wheel_type":"wheel","failure_reason":null,"install_time_s":null,"import_time_s":3.54,"mem_mb":35.8,"disk_size":"235.5M"},{"runtime":"python:3.12-alpine","python_version":"3.12","os_libc":"alpine (musl)","variant":"default","exit_code":1,"wheel_type":null,"failure_reason":"build_error","install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.12-alpine","python_version":"3.12","os_libc":"alpine (musl)","variant":"default","exit_code":1,"wheel_type":null,"failure_reason":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.12-alpine","python_version":"3.12","os_libc":"alpine (musl)","variant":"default","exit_code":0,"wheel_type":"wheel","failure_reason":null,"install_time_s":null,"import_time_s":3.51,"mem_mb":35.8,"disk_size":"235.5M"},{"runtime":"python:3.12-alpine","python_version":"3.12","os_libc":"alpine (musl)","variant":"default","exit_code":0,"wheel_type":null,"failure_reason":null,"install_time_s":null,"import_time_s":6.01,"mem_mb":35.7,"disk_size":"234.7M"},{"runtime":"python:3.12-slim","python_version":"3.12","os_libc":"slim (glibc)","variant":" $EXIT -eq 0 ","exit_code":0,"wheel_type":"wheel","failure_reason":null,"install_time_s":31.3,"import_time_s":3.45,"mem_mb":39.2,"disk_size":"361M"},{"runtime":"python:3.12-slim","python_version":"3.12","os_libc":"slim (glibc)","variant":" $EXIT -eq 0 ","exit_code":0,"wheel_type":"wheel","failure_reason":null,"install_time_s":11.8,"import_time_s":3.03,"mem_mb":35.4,"disk_size":"296M"},{"runtime":"python:3.12-slim","python_version":"3.12","os_libc":"slim (glibc)","variant":"default","exit_code":0,"wheel_type":"wheel","failure_reason":null,"install_time_s":26.9,"import_time_s":3.16,"mem_mb":39.2,"disk_size":"361M"},{"runtime":"python:3.12-slim","python_version":"3.12","os_libc":"slim (glibc)","variant":"default","exit_code":0,"wheel_type":null,"failure_reason":null,"install_time_s":null,"import_time_s":5.67,"mem_mb":39.2,"disk_size":"361M"},{"runtime":"python:3.12-slim","python_version":"3.12","os_libc":"slim (glibc)","variant":"default","exit_code":0,"wheel_type":"wheel","failure_reason":null,"install_time_s":12.9,"import_time_s":3.07,"mem_mb":35.4,"disk_size":"296M"},{"runtime":"python:3.12-slim","python_version":"3.12","os_libc":"slim (glibc)","variant":"default","exit_code":0,"wheel_type":null,"failure_reason":null,"install_time_s":null,"import_time_s":4.98,"mem_mb":35.4,"disk_size":"295M"},{"runtime":"python:3.13-alpine","python_version":"3.13","os_libc":"alpine (musl)","variant":" $EXIT -eq 0 ","exit_code":1,"wheel_type":null,"failure_reason":"build_error","install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.13-alpine","python_version":"3.13","os_libc":"alpine (musl)","variant":" $EXIT -eq 0 ","exit_code":0,"wheel_type":"wheel","failure_reason":null,"install_time_s":null,"import_time_s":3.34,"mem_mb":36.3,"disk_size":"231.8M"},{"runtime":"python:3.13-alpine","python_version":"3.13","os_libc":"alpine (musl)","variant":"default","exit_code":1,"wheel_type":null,"failure_reason":"build_error","install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.13-alpine","python_version":"3.13","os_libc":"alpine (musl)","variant":"default","exit_code":1,"wheel_type":null,"failure_reason":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.13-alpine","python_version":"3.13","os_libc":"alpine (musl)","variant":"default","exit_code":0,"wheel_type":"wheel","failure_reason":null,"install_time_s":null,"import_time_s":3.36,"mem_mb":36.3,"disk_size":"231.8M"},{"runtime":"python:3.13-alpine","python_version":"3.13","os_libc":"alpine (musl)","variant":"default","exit_code":0,"wheel_type":null,"failure_reason":null,"install_time_s":null,"import_time_s":4.77,"mem_mb":36.2,"disk_size":"231.1M"},{"runtime":"python:3.13-slim","python_version":"3.13","os_libc":"slim (glibc)","variant":" $EXIT -eq 0 ","exit_code":0,"wheel_type":"wheel","failure_reason":null,"install_time_s":26.8,"import_time_s":3.21,"mem_mb":39.7,"disk_size":"359M"},{"runtime":"python:3.13-slim","python_version":"3.13","os_libc":"slim (glibc)","variant":" $EXIT -eq 0 ","exit_code":0,"wheel_type":"wheel","failure_reason":null,"install_time_s":13.2,"import_time_s":3.03,"mem_mb":36,"disk_size":"294M"},{"runtime":"python:3.13-slim","python_version":"3.13","os_libc":"slim (glibc)","variant":"default","exit_code":0,"wheel_type":"wheel","failure_reason":null,"install_time_s":28.9,"import_time_s":3.16,"mem_mb":39.7,"disk_size":"359M"},{"runtime":"python:3.13-slim","python_version":"3.13","os_libc":"slim (glibc)","variant":"default","exit_code":0,"wheel_type":null,"failure_reason":null,"install_time_s":null,"import_time_s":5.25,"mem_mb":39.7,"disk_size":"360M"},{"runtime":"python:3.13-slim","python_version":"3.13","os_libc":"slim (glibc)","variant":"default","exit_code":0,"wheel_type":"wheel","failure_reason":null,"install_time_s":12.5,"import_time_s":3.01,"mem_mb":36,"disk_size":"294M"},{"runtime":"python:3.13-slim","python_version":"3.13","os_libc":"slim (glibc)","variant":"default","exit_code":0,"wheel_type":null,"failure_reason":null,"install_time_s":null,"import_time_s":5.12,"mem_mb":36,"disk_size":"293M"},{"runtime":"python:3.9-alpine","python_version":"3.9","os_libc":"alpine (musl)","variant":" $EXIT -eq 0 ","exit_code":1,"wheel_type":null,"failure_reason":"build_error","install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.9-alpine","python_version":"3.9","os_libc":"alpine (musl)","variant":" $EXIT -eq 0 ","exit_code":0,"wheel_type":"wheel","failure_reason":null,"install_time_s":null,"import_time_s":2.33,"mem_mb":33.3,"disk_size":"239.9M"},{"runtime":"python:3.9-alpine","python_version":"3.9","os_libc":"alpine (musl)","variant":"default","exit_code":1,"wheel_type":null,"failure_reason":"build_error","install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.9-alpine","python_version":"3.9","os_libc":"alpine (musl)","variant":"default","exit_code":1,"wheel_type":null,"failure_reason":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.9-alpine","python_version":"3.9","os_libc":"alpine (musl)","variant":"default","exit_code":0,"wheel_type":"wheel","failure_reason":null,"install_time_s":null,"import_time_s":2.34,"mem_mb":33.3,"disk_size":"239.9M"},{"runtime":"python:3.9-alpine","python_version":"3.9","os_libc":"alpine (musl)","variant":"default","exit_code":0,"wheel_type":null,"failure_reason":null,"install_time_s":null,"import_time_s":4.04,"mem_mb":33.3,"disk_size":"239.2M"},{"runtime":"python:3.9-slim","python_version":"3.9","os_libc":"slim (glibc)","variant":" $EXIT -eq 0 ","exit_code":0,"wheel_type":"wheel","failure_reason":null,"install_time_s":42.3,"import_time_s":2.11,"mem_mb":36.4,"disk_size":"407M"},{"runtime":"python:3.9-slim","python_version":"3.9","os_libc":"slim (glibc)","variant":" $EXIT -eq 0 ","exit_code":0,"wheel_type":"wheel","failure_reason":null,"install_time_s":19.4,"import_time_s":1.98,"mem_mb":32.8,"disk_size":"305M"},{"runtime":"python:3.9-slim","python_version":"3.9","os_libc":"slim (glibc)","variant":"default","exit_code":0,"wheel_type":"wheel","failure_reason":null,"install_time_s":41.4,"import_time_s":2.16,"mem_mb":36.4,"disk_size":"407M"},{"runtime":"python:3.9-slim","python_version":"3.9","os_libc":"slim (glibc)","variant":"default","exit_code":0,"wheel_type":null,"failure_reason":null,"install_time_s":null,"import_time_s":2.94,"mem_mb":36.4,"disk_size":"404M"},{"runtime":"python:3.9-slim","python_version":"3.9","os_libc":"slim (glibc)","variant":"default","exit_code":0,"wheel_type":"wheel","failure_reason":null,"install_time_s":19.7,"import_time_s":1.9,"mem_mb":32.8,"disk_size":"305M"},{"runtime":"python:3.9-slim","python_version":"3.9","os_libc":"slim (glibc)","variant":"default","exit_code":0,"wheel_type":null,"failure_reason":null,"install_time_s":null,"import_time_s":2.79,"mem_mb":32.8,"disk_size":"304M"}]},"quickstart_checks":{"last_tested":"2026-05-11","tag":"stale","tag_description":"widespread failures or data too old to trust","results":[{"runtime":"python:3.10-alpine","exit_code":1},{"runtime":"python:3.10-slim","exit_code":-1},{"runtime":"python:3.11-alpine","exit_code":1},{"runtime":"python:3.11-slim","exit_code":1},{"runtime":"python:3.12-alpine","exit_code":1},{"runtime":"python:3.12-slim","exit_code":1},{"runtime":"python:3.13-alpine","exit_code":1},{"runtime":"python:3.13-slim","exit_code":1},{"runtime":"python:3.9-alpine","exit_code":1},{"runtime":"python:3.9-slim","exit_code":-1}]}}