{"id":8,"library":"banana-dev","title":"Banana Dev","description":"Python client for Banana's serverless GPU inference platform. Platform permanently shut down March 31, 2024. Package is abandoned. All API calls fail — the backend no longer exists. Do not use.","status":"abandoned","version":"6.3.0","language":"python","source_language":"en","source_url":"https://github.com/bananaml/banana-python-sdk","tags":["gpu","serverless","inference","abandoned","shutdown","python"],"install":[{"cmd":"pip install banana-dev","lang":"bash","label":"Python (abandoned — do not use)"}],"dependencies":[],"imports":[{"note":"banana.run() will raise a connection error. The API endpoint no longer exists.","wrong":"import banana\nbanana.run(api_key, model_key, inputs)","symbol":"banana","correct":"# No valid usage — platform shut down March 31, 2024"}],"quickstart":{"code":"# banana.dev shut down March 31, 2024.\n# All API calls will fail with a connection error.\n# Migrate to: Modal, RunPod, Replicate, or fal.ai\n\n# Modal equivalent:\nimport modal\napp = modal.App()\n\n@app.function(gpu=\"A10G\")\ndef run_model(inputs):\n    # your model code\n    pass","lang":"python","description":"Platform is dead. This quickstart shows the recommended Modal migration pattern."},"warnings":[{"fix":"Migrate to Modal (closest DX) and ensure it is installed (e.g., via `pip install modal`), RunPod (lowest cost), Replicate (easiest API), or fal.ai.","message":"Banana.dev platform permanently shut down March 31, 2024. All API calls raise ConnectionError. The backend does not exist.","severity":"breaking","affected_versions":"all"},{"fix":"Remove banana-dev from requirements.txt entirely.","message":"Package is unmaintained. No releases since shutdown. Do not use banana-dev in any new project.","severity":"breaking","affected_versions":"all"},{"fix":"Discard any banana.dev or potassium-based code. Rewrite against Modal or RunPod.","message":"Tutorials and LLM-generated code referencing banana.dev or the potassium server framework are entirely non-functional. The potassium library is open-source but unmaintained and has no hosting target.","severity":"gotcha","affected_versions":"all"},{"fix":"Install the 'modal' package using pip: `pip install modal`.","message":"ModuleNotFoundError: No module named 'modal'. The 'modal' library is a required dependency that needs to be installed.","severity":"gotcha","affected_versions":"all"}],"env_vars":{"optional":[{"name":"BANANA_API_KEY","note":"No longer functional. Platform shut down March 2024."}]},"last_verified":"2026-05-11T18:10:02.042Z","next_check":"2027-01-01T00:00:00.000Z","problems":[{"fix":"The Banana.dev platform has shut down. There is no fix to resume service with this library. Users should migrate to an alternative serverless GPU inference platform.","cause":"The Banana.dev API server is no longer operational, so the client cannot establish a connection.","error":"requests.exceptions.ConnectionError: HTTPConnectionPool(host='api.banana.dev', port=443): Max retries exceeded with url: /..."},{"fix":"The Banana.dev platform has shut down. There is no fix to resume service with this library. Users should migrate to an alternative serverless GPU inference platform.","cause":"The attempt to connect to the Banana.dev API endpoint was actively refused because the server is not running or listening on the specified port.","error":"requests.exceptions.ConnectionError: ('Connection aborted.', ConnectionRefusedError(111, 'Connection refused'))"},{"fix":"Install the package using pip: `pip install banana-dev`. Note: While this resolves the import error, API calls will still fail due to the platform's shutdown.","cause":"The `banana-dev` Python package has not been installed in the current environment.","error":"ModuleNotFoundError: No module named 'banana_dev'"},{"fix":"The Banana.dev platform has shut down. While checking the API key's validity might be a first step if the platform were operational, the core issue is the backend's absence. Users should migrate to an alternative platform.","cause":"Even if a theoretically valid API key is provided, the backend infrastructure required to validate it and process requests no longer exists, leading to an authentication failure from the client's perspective as it cannot communicate with the service.","error":"banana.InvalidAPIKeyError"}],"ecosystem":"pypi","meta_description":null,"install_score":80,"install_tag":"verified","quickstart_score":0,"quickstart_tag":"stale","pypi_latest":null,"install_checks":{"last_tested":"2026-05-11","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":"default","exit_code":0,"wheel_type":null,"failure_reason":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":"21.1M"},{"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":null,"mem_mb":null,"disk_size":"22M"},{"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":null,"mem_mb":null,"disk_size":"23.2M"},{"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":null,"mem_mb":null,"disk_size":"24M"},{"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":null,"mem_mb":null,"disk_size":"15.0M"},{"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":null,"mem_mb":null,"disk_size":"15M"},{"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":null,"mem_mb":null,"disk_size":"14.7M"},{"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":null,"mem_mb":null,"disk_size":"15M"},{"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":null,"mem_mb":null,"disk_size":"20.5M"},{"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":null,"mem_mb":null,"disk_size":"21M"}]},"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}]}}