{"package":"twisted","ecosystem":"pypi","latest_version":"26.4.0","description":"An asynchronous networking framework written in Python","license":"MIT License","license_risk":"permissive","commercial_use_notes":"Permissive: commercial closed-source use OK; preserve the copyright notice.","homepage":"https://pypi.org/project/Twisted/","repository":"https://github.com/twisted/twisted","downloads_weekly":3085444,"health":{"score":78,"risk":"moderate","breakdown":{"maintenance":15,"popularity":17,"security":25,"maturity":15,"community":6,"popularity_floor":0},"deprecated":false,"max_score":100},"vulnerabilities":{"count":0,"critical":0,"high":0,"medium":0,"low":0,"details":[]},"versions":{"latest":"26.4.0","total_count":111,"recent":["22.10.0rc1","22.10.0","23.8.0rc1","23.8.0","23.10.0rc1","23.10.0","24.2.0rc1","24.3.0","24.7.0rc1","24.7.0rc2","24.7.0","24.10.0rc1","24.10.0","24.11.0rc1","24.11.0rc2","24.11.0","25.5.0rc1","25.5.0","26.4.0rc2","26.4.0"]},"metadata":{"deprecated":false,"deprecated_message":null,"maintainers_count":0,"first_published":null,"last_published":"2026-05-11T11:24:49.500579Z","dependencies_count":150,"dependencies":["attrs>=22.2.0","automat>=24.8.0","constantly>=15.1","hyperlink>=17.1.1","incremental>=24.7.0","typing-extensions>=4.2.0","zope-interface>=5","appdirs>=1.4.0; extra == \"all-non-platform\"","bcrypt>=3.2.1; extra == \"all-non-platform\"","cryptography>=38; extra == \"all-non-platform\"","cython-test-exception-raiser<2,>=1.0.2; extra == \"all-non-platform\"","h2<5.0,>=3.2; extra == \"all-non-platform\"","httpx[http2]>=0.27; extra == \"all-non-platform\"","hypothesis>=6.56; extra == \"all-non-platform\"","idna>=2.4; extra == \"all-non-platform\"","priority<2.0,>=1.1.0; extra == \"all-non-platform\"","pyhamcrest>=2; extra == \"all-non-platform\"","pyopenssl>=25.2.0; extra == \"all-non-platform\"","pyserial>=3.0; extra == \"all-non-platform\"","pywin32!=226; platform_system == \"Windows\" and extra == \"all-non-platform\"","service-identity>=18.1.0; extra == \"all-non-platform\"","wsproto; extra == \"all-non-platform\"","appdirs>=1.4.0; extra == \"conch\"","bcrypt>=3.2.1; extra == \"conch\"","cryptography>=38; extra == \"conch\"","coverage~=7.5; extra == \"dev\"","cython-test-exception-raiser<2,>=1.0.2; extra == \"dev\"","httpx[http2]>=0.27; extra == \"dev\"","hypothesis>=6.56; extra == \"dev\"","pydoctor~=25.4.0; extra == \"dev\"","pyflakes~=2.2; extra == \"dev\"","pyhamcrest>=2; extra == \"dev\"","python-subunit~=1.4; extra == \"dev\"","sphinx-rtd-theme~=1.3; extra == \"dev\"","sphinx<7,>=6; extra == \"dev\"","towncrier~=23.6; extra == \"dev\"","twistedchecker~=0.7; extra == \"dev\"","pydoctor~=25.4.0; extra == \"dev-release\"","sphinx-rtd-theme~=1.3; extra == \"dev-release\"","sphinx<7,>=6; extra == \"dev-release\"","towncrier~=23.6; extra == \"dev-release\"","appdirs>=1.4.0; extra == \"gtk-platform\"","bcrypt>=3.2.1; extra == \"gtk-platform\"","cryptography>=38; extra == \"gtk-platform\"","cython-test-exception-raiser<2,>=1.0.2; extra == \"gtk-platform\"","h2<5.0,>=3.2; extra == \"gtk-platform\"","httpx[http2]>=0.27; extra == \"gtk-platform\"","hypothesis>=6.56; extra == \"gtk-platform\"","idna>=2.4; extra == \"gtk-platform\"","priority<2.0,>=1.1.0; extra == \"gtk-platform\"","pygobject; python_version >= \"3.10\" and extra == \"gtk-platform\"","pygobject<3.52.1; python_version < \"3.10\" and extra == \"gtk-platform\"","pyhamcrest>=2; extra == \"gtk-platform\"","pyopenssl>=25.2.0; extra == \"gtk-platform\"","pyserial>=3.0; extra == \"gtk-platform\"","pywin32!=226; platform_system == \"Windows\" and extra == \"gtk-platform\"","service-identity>=18.1.0; extra == \"gtk-platform\"","wsproto; extra == \"gtk-platform\"","h2<5.0,>=3.2; extra == \"http2\"","priority<2.0,>=1.1.0; extra == \"http2\"","appdirs>=1.4.0; extra == \"macos-platform\"","bcrypt>=3.2.1; extra == \"macos-platform\"","cryptography>=38; extra == \"macos-platform\"","cython-test-exception-raiser<2,>=1.0.2; extra == \"macos-platform\"","h2<5.0,>=3.2; extra == \"macos-platform\"","httpx[http2]>=0.27; extra == \"macos-platform\"","hypothesis>=6.56; extra == \"macos-platform\"","idna>=2.4; extra == \"macos-platform\"","priority<2.0,>=1.1.0; extra == \"macos-platform\"","pyhamcrest>=2; extra == \"macos-platform\"","pyobjc-core>=12; python_version >= \"3.10\" and extra == \"macos-platform\"","pyobjc-framework-cfnetwork>=12; python_version >= \"3.10\" and extra == \"macos-platform\"","pyobjc-framework-cocoa>=12; python_version >= \"3.10\" and extra == \"macos-platform\"","pyopenssl>=25.2.0; extra == \"macos-platform\"","pyserial>=3.0; extra == \"macos-platform\"","pywin32!=226; platform_system == \"Windows\" and extra == \"macos-platform\"","service-identity>=18.1.0; extra == \"macos-platform\"","wsproto; extra == \"macos-platform\"","appdirs>=1.4.0; extra == \"mypy\"","bcrypt>=3.2.1; extra == \"mypy\"","coverage~=7.5; extra == \"mypy\"","cryptography>=38; extra == \"mypy\"","cython-test-exception-raiser<2,>=1.0.2; extra == \"mypy\"","h2<5.0,>=3.2; extra == \"mypy\"","httpx[http2]>=0.27; extra == \"mypy\"","hypothesis>=6.56; extra == \"mypy\"","idna>=2.4; extra == \"mypy\"","mypy-zope==1.0.14; extra == \"mypy\"","mypy==1.19.1; extra == \"mypy\"","priority<2.0,>=1.1.0; extra == \"mypy\"","pydoctor~=25.4.0; extra == \"mypy\"","pyflakes~=2.2; extra == \"mypy\"","pyhamcrest>=2; extra == \"mypy\"","pyopenssl>=25.2.0; extra == \"mypy\"","pyserial>=3.0; extra == \"mypy\"","python-subunit~=1.4; extra == \"mypy\"","pywin32!=226; platform_system == \"Windows\" and extra == \"mypy\"","service-identity>=18.1.0; extra == \"mypy\"","sphinx-rtd-theme~=1.3; extra == \"mypy\"","sphinx<7,>=6; extra == \"mypy\"","towncrier~=23.6; extra == \"mypy\"","twistedchecker~=0.7; extra == \"mypy\"","types-pyopenssl; extra == \"mypy\"","types-setuptools; extra == \"mypy\"","wsproto; extra == \"mypy\"","appdirs>=1.4.0; extra == \"osx-platform\"","bcrypt>=3.2.1; extra == \"osx-platform\"","cryptography>=38; extra == \"osx-platform\"","cython-test-exception-raiser<2,>=1.0.2; extra == \"osx-platform\"","h2<5.0,>=3.2; extra == \"osx-platform\"","httpx[http2]>=0.27; extra == \"osx-platform\"","hypothesis>=6.56; extra == \"osx-platform\"","idna>=2.4; extra == \"osx-platform\"","priority<2.0,>=1.1.0; extra == \"osx-platform\"","pyhamcrest>=2; extra == \"osx-platform\"","pyobjc-core>=12; python_version >= \"3.10\" and extra == \"osx-platform\"","pyobjc-framework-cfnetwork>=12; python_version >= \"3.10\" and extra == \"osx-platform\"","pyobjc-framework-cocoa>=12; python_version >= \"3.10\" and extra == \"osx-platform\"","pyopenssl>=25.2.0; extra == \"osx-platform\"","pyserial>=3.0; extra == \"osx-platform\"","pywin32!=226; platform_system == \"Windows\" and extra == \"osx-platform\"","service-identity>=18.1.0; extra == \"osx-platform\"","wsproto; extra == \"osx-platform\"","pyserial>=3.0; extra == \"serial\"","pywin32!=226; platform_system == \"Windows\" and extra == \"serial\"","cython-test-exception-raiser<2,>=1.0.2; extra == \"test\"","httpx[http2]>=0.27; extra == \"test\"","hypothesis>=6.56; extra == \"test\"","pyhamcrest>=2; extra == \"test\"","idna>=2.4; extra == \"tls\"","pyopenssl>=25.2.0; extra == \"tls\"","service-identity>=18.1.0; extra == \"tls\"","wsproto; extra == \"websocket\"","appdirs>=1.4.0; extra == \"windows-platform\"","bcrypt>=3.2.1; extra == \"windows-platform\"","cryptography>=38; extra == \"windows-platform\"","cython-test-exception-raiser<2,>=1.0.2; extra == \"windows-platform\"","h2<5.0,>=3.2; extra == \"windows-platform\"","httpx[http2]>=0.27; extra == \"windows-platform\"","hypothesis>=6.56; extra == \"windows-platform\"","idna>=2.4; extra == \"windows-platform\"","priority<2.0,>=1.1.0; extra == \"windows-platform\"","pyhamcrest>=2; extra == \"windows-platform\"","pyopenssl>=25.2.0; extra == \"windows-platform\"","pyserial>=3.0; extra == \"windows-platform\"","pywin32!=226; extra == \"windows-platform\"","pywin32!=226; platform_system == \"Windows\" and extra == \"windows-platform\"","service-identity>=18.1.0; extra == \"windows-platform\"","twisted-iocpsupport>=1.0.2; extra == \"windows-platform\"","wsproto; extra == \"windows-platform\""]},"github_stats":{"stars":5963,"forks":1210,"open_issues":2798,"is_archived":false,"pushed_at":"2026-04-29T15:43:12+00:00"},"bundle":null,"typescript":null,"known_issues":{"bugs_count":0,"bugs_severity":{},"status_breakdown":{},"link":null,"scope":"none"},"historical_compromise":null,"recommendation":{"action":"safe_to_use","issues":[],"use_version":"26.4.0","version_hint":null,"summary":"twisted@26.4.0 is safe to use (health: 78/100)","alternatives":[{"name":"asyncio","reason":"asyncio is stdlib","builtin":false}]},"version_scoped":null,"_meta":{"endpoint":"check","tier":"full","philosophy":"DepScope is free. Use the cheapest endpoint that answers your real question.","cheaper_alternatives":[{"endpoint":"/api/exists/pypi/twisted","tokens_estimated":12,"use_when":"you only need to know if the package exists (hallucination guard)"},{"endpoint":"/api/health/pypi/twisted","tokens_estimated":80,"use_when":"you only need a 0-100 score for go/no-go (>=70 = safe)"},{"endpoint":"/api/prompt/pypi/twisted","tokens_estimated":280,"use_when":"you want a plain-text LLM-friendly brief instead of JSON"},{"endpoint":"POST /api/check_bulk","tokens_estimated":60,"use_when":"you have 5+ packages to check; sends one round-trip instead of N"}],"docs":"https://depscope.dev/integrate"},"_cache":"hit","_response_ms":0}