{"id":369338,"url":"https://github.com/python-websockets/websockets","last_synced_at":"2026-08-24T12:33:15.491Z","repository":{"id":7746372,"uuid":"9113587","full_name":"python-websockets/websockets","owner":"python-websockets","description":"Library for building WebSocket servers and clients in Python","archived":false,"fork":false,"pushed_at":"2026-08-10T19:18:46.000Z","size":4446,"stargazers_count":5713,"open_issues_count":0,"forks_count":602,"subscribers_count":107,"default_branch":"main","last_synced_at":"2026-08-15T19:28:34.666Z","etag":null,"topics":["python","python3","websocket","websocket-client","websocket-library","websocket-server","websockets"],"latest_commit_sha":null,"homepage":"https://websockets.readthedocs.io/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/python-websockets.png","metadata":{"files":{"readme":"README.rst","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"claude":null,"gemini":null,"cursor":null,"copilot":null,"dco":null,"cla":null,"disclosure":null},"funding":{"github":"python-websockets","open_collective":"websockets","tidelift":"pypi/websockets"}},"created_at":"2013-03-30T08:59:30.000Z","updated_at":"2026-08-15T16:39:54.000Z","dependencies_parsed_at":"2026-08-08T04:49:02.597Z","dependency_job_id":null,"html_url":"https://github.com/python-websockets/websockets","commit_stats":{"total_commits":1510,"total_committers":76,"mean_commits":19.86842105263158,"dds":"0.22980132450331126","last_synced_commit":"76f6f573e2ecb279230c2bf56c07bf4d4f717147"},"previous_names":["aaugustin/websockets"],"tags_count":51,"template":false,"template_full_name":null,"purl":"pkg:github/python-websockets/websockets","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/python-websockets","download_url":"https://codeload.github.com/python-websockets/websockets/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/sbom","scorecard":{"id":159660,"data":{"date":"2025-08-04","repo":{"name":"github.com/python-websockets/websockets","commit":"5c809b0ae3641605c86e9f0d66136168b0d8bdd2"},"scorecard":{"version":"v5.2.1-28-gc1d103a9","commit":"c1d103a9bb9f635ec7260bf9aa0699466fa4be0e"},"score":5.1,"checks":[{"name":"Maintained","score":10,"reason":"12 commit(s) and 19 issue activity found in the last 90 days -- score normalized to 10","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#maintained"}},{"name":"Code-Review","score":1,"reason":"Found 4/27 approved changesets -- score normalized to 1","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#code-review"}},{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: jobLevel 'contents' permission set to 'write': .github/workflows/release.yml:76","Warn: no topLevel permission defined: .github/workflows/release.yml:1","Warn: no topLevel permission defined: .github/workflows/tests.yml:1"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#token-permissions"}},{"name":"Security-Policy","score":10,"reason":"security policy file detected","details":["Info: security policy file detected: SECURITY.md:1","Info: Found linked content: SECURITY.md:1","Info: Found disclosure, vulnerability, and/or timelines in security policy: SECURITY.md:1","Info: Found text in security policy: SECURITY.md:1"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#security-policy"}},{"name":"Dangerous-Workflow","score":10,"reason":"no dangerous workflow patterns detected","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#dangerous-workflow"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#cii-best-practices"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#binary-artifacts"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Info: FSF or OSI recognized license: BSD 3-Clause \"New\" or \"Revised\" License: LICENSE:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#license"}},{"name":"Fuzzing","score":10,"reason":"project is fuzzed","details":["Info: PythonAtherisFuzzer integration found: fuzzing/fuzz_http11_request_parser.py:3","Info: PythonAtherisFuzzer integration found: fuzzing/fuzz_http11_response_parser.py:3","Info: PythonAtherisFuzzer integration found: fuzzing/fuzz_websocket_parser.py:3"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#fuzzing"}},{"name":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/release.yml:45: update your workflow using https://app.stepsecurity.io/secureworkflow/python-websockets/websockets/release.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/release.yml:47: update your workflow using https://app.stepsecurity.io/secureworkflow/python-websockets/websockets/release.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/release.yml:52: update your workflow using https://app.stepsecurity.io/secureworkflow/python-websockets/websockets/release.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/release.yml:56: update your workflow using https://app.stepsecurity.io/secureworkflow/python-websockets/websockets/release.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/release.yml:60: update your workflow using https://app.stepsecurity.io/secureworkflow/python-websockets/websockets/release.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/release.yml:79: update your workflow using https://app.stepsecurity.io/secureworkflow/python-websockets/websockets/release.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/release.yml:85: update your workflow using https://app.stepsecurity.io/secureworkflow/python-websockets/websockets/release.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/release.yml:89: update your workflow using https://app.stepsecurity.io/secureworkflow/python-websockets/websockets/release.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/release.yml:15: update your workflow using https://app.stepsecurity.io/secureworkflow/python-websockets/websockets/release.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/release.yml:17: update your workflow using https://app.stepsecurity.io/secureworkflow/python-websockets/websockets/release.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/release.yml:27: update your workflow using https://app.stepsecurity.io/secureworkflow/python-websockets/websockets/release.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/tests.yml:20: update your workflow using https://app.stepsecurity.io/secureworkflow/python-websockets/websockets/tests.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/tests.yml:22: update your workflow using https://app.stepsecurity.io/secureworkflow/python-websockets/websockets/tests.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/tests.yml:37: update your workflow using https://app.stepsecurity.io/secureworkflow/python-websockets/websockets/tests.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/tests.yml:39: update your workflow using https://app.stepsecurity.io/secureworkflow/python-websockets/websockets/tests.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/tests.yml:71: update your workflow using https://app.stepsecurity.io/secureworkflow/python-websockets/websockets/tests.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/tests.yml:73: update your workflow using https://app.stepsecurity.io/secureworkflow/python-websockets/websockets/tests.yml/main?enable=pin","Warn: containerImage not pinned by hash: example/deployment/kubernetes/Dockerfile:1: pin your Docker image by updating python:3.13-alpine to python:3.13-alpine@sha256:f196fd275fdad7287ccb4b0a85c2e402bb8c794d205cf6158909041c1ee9f38d","Warn: pipCommand not pinned by hash: example/deployment/kubernetes/Dockerfile:3","Warn: pipCommand not pinned by hash: .github/workflows/release.yml:22","Warn: pipCommand not pinned by hash: .github/workflows/tests.yml:27","Warn: pipCommand not pinned by hash: .github/workflows/tests.yml:44","Warn: pipCommand not pinned by hash: .github/workflows/tests.yml:79","Info:   0 out of  14 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of   3 third-party GitHubAction dependencies pinned","Info:   0 out of   1 containerImage dependencies pinned","Info:   0 out of   5 pipCommand dependencies pinned"],"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#pinned-dependencies"}},{"name":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#signed-releases"}},{"name":"Branch-Protection","score":0,"reason":"branch protection not enabled on development/release branches","details":["Warn: branch protection not enabled for branch 'main'"],"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#branch-protection"}},{"name":"Packaging","score":10,"reason":"packaging workflow detected","details":["Info: Project packages its releases by way of GitHub Actions.: .github/workflows/release.yml:65"],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#packaging"}},{"name":"Vulnerabilities","score":0,"reason":"17 existing vulnerabilities detected","details":["Warn: Project is vulnerable to: GHSA-2g68-c3qc-8985","Warn: Project is vulnerable to: PYSEC-2020-157 / GHSA-3p3h-qghp-hvh2","Warn: Project is vulnerable to: GHSA-f9vj-2wh5-fj8j","Warn: Project is vulnerable to: PYSEC-2019-140 / GHSA-gq9m-qvpx-68hc","Warn: Project is vulnerable to: PYSEC-2017-43 / GHSA-h2fp-xgx6-xh6f","Warn: Project is vulnerable to: PYSEC-2023-221 / GHSA-hrfv-mqp8-q5rw","Warn: Project is vulnerable to: GHSA-j544-7q9p-6xp8","Warn: Project is vulnerable to: PYSEC-2023-57 / GHSA-px8h-6qxv-m22q","Warn: Project is vulnerable to: GHSA-q34m-jh98-gwm2","Warn: Project is vulnerable to: PYSEC-2023-58 / GHSA-xg9f-g7g7-2323","Warn: Project is vulnerable to: PYSEC-2022-203","Warn: Project is vulnerable to: PYSEC-2021-95 / GHSA-8ch4-58qp-g3mp","Warn: Project is vulnerable to: PYSEC-2018-79","Warn: Project is vulnerable to: PYSEC-2021-328 / GHSA-22gh-3r9q-xf38","Warn: Project is vulnerable to: PYSEC-2018-56 / GHSA-6m53-c78q-7qmg","Warn: Project is vulnerable to: PYSEC-2022-170 / GHSA-gcx2-gvj7-pxv3","Warn: Project is vulnerable to: GHSA-wg33-5h85-7q5p"],"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#vulnerabilities"}},{"name":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 12 are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#sast"}}]},"last_synced_at":"2025-08-16T12:58:49.354Z","repository_id":7746372,"created_at":"2025-08-16T12:58:49.354Z","updated_at":"2025-08-16T12:58:49.354Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":36709410,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-08-06T04:43:03.162Z","status":"online","status_checked_at":"2026-08-16T02:00:06.462Z","response_time":62,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"owner":{"login":"python-websockets","name":"python-websockets","uuid":"130129149","kind":"organization","description":null,"email":null,"website":null,"location":null,"twitter":null,"company":null,"icon_url":"https://avatars.githubusercontent.com/u/130129149?v=4","repositories_count":1,"last_synced_at":"2023-04-09T06:52:51.862Z","metadata":{"has_sponsors_listing":false},"html_url":"https://github.com/python-websockets","funding_links":[],"total_stars":null,"followers":null,"following":null,"created_at":"2023-04-09T06:52:51.880Z","updated_at":"2023-04-09T06:52:51.880Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/python-websockets","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/python-websockets/repositories"},"packages":[{"id":6471862,"name":"websockets","ecosystem":"conda","description":"websockets is a library for building WebSocket servers and clients in Python with a focus on correctness, simplicity, robustness, and performance. It supports several network I/O and control flow paradigms. The default implementation builds upon asyncio, Python’s built-in asynchronous I/O library. It provides an elegant coroutine-based API. It’s ideal for servers that handle many client connections. The threading implementation is a good alternative for clients, especially if you aren’t familiar with asyncio. It may also be used for servers that handle few client connections. The Sans-I/O implementation is designed for integrating in third-party libraries, typically application servers, in addition being used internally by websockets.","homepage":"https://websockets.readthedocs.io","licenses":"BSD-3-Clause","normalized_licenses":["BSD-3-Clause"],"repository_url":"https://github.com/python-websockets/websockets","keywords_array":[],"namespace":null,"versions_count":3,"first_release_published_at":"2023-03-03T08:04:40.000Z","latest_release_published_at":"2025-07-08T11:35:41.000Z","latest_release_number":"15.0.1","last_synced_at":"2026-03-19T01:05:11.245Z","created_at":"2023-03-05T00:43:25.243Z","updated_at":"2026-08-15T19:29:06.201Z","registry_url":"https://anaconda.org/anaconda/websockets","install_command":"conda install -c anaconda websockets","documentation_url":null,"metadata":{},"repo_metadata":{"id":7746372,"uuid":"9113587","full_name":"python-websockets/websockets","owner":"python-websockets","description":"Library for building WebSocket servers and clients in Python","archived":false,"fork":false,"pushed_at":"2026-07-31T10:40:13.000Z","size":4444,"stargazers_count":5708,"open_issues_count":0,"forks_count":603,"subscribers_count":107,"default_branch":"main","last_synced_at":"2026-08-08T09:52:59.210Z","etag":null,"topics":["python","python3","websocket","websocket-client","websocket-library","websocket-server","websockets"],"latest_commit_sha":null,"homepage":"https://websockets.readthedocs.io/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/python-websockets.png","metadata":{"files":{"readme":"README.rst","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"claude":null,"gemini":null,"cursor":null,"copilot":null,"dco":null,"cla":null,"disclosure":null},"funding":{"github":"python-websockets","open_collective":"websockets","tidelift":"pypi/websockets"}},"created_at":"2013-03-30T08:59:30.000Z","updated_at":"2026-08-07T11:04:52.000Z","dependencies_parsed_at":"2026-08-08T04:49:02.597Z","dependency_job_id":null,"html_url":"https://github.com/python-websockets/websockets","commit_stats":{"total_commits":1510,"total_committers":76,"mean_commits":19.86842105263158,"dds":"0.22980132450331126","last_synced_commit":"76f6f573e2ecb279230c2bf56c07bf4d4f717147"},"previous_names":["aaugustin/websockets"],"tags_count":51,"template":false,"template_full_name":null,"purl":"pkg:github/python-websockets/websockets","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/python-websockets","download_url":"https://codeload.github.com/python-websockets/websockets/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/sbom","scorecard":{"id":159660,"data":{"date":"2025-08-04","repo":{"name":"github.com/python-websockets/websockets","commit":"5c809b0ae3641605c86e9f0d66136168b0d8bdd2"},"scorecard":{"version":"v5.2.1-28-gc1d103a9","commit":"c1d103a9bb9f635ec7260bf9aa0699466fa4be0e"},"score":5.1,"checks":[{"name":"Maintained","score":10,"reason":"12 commit(s) and 19 issue activity found in the last 90 days -- score normalized to 10","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#maintained"}},{"name":"Code-Review","score":1,"reason":"Found 4/27 approved changesets -- score normalized to 1","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#code-review"}},{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: jobLevel 'contents' permission set to 'write': .github/workflows/release.yml:76","Warn: no topLevel permission defined: .github/workflows/release.yml:1","Warn: no topLevel permission defined: .github/workflows/tests.yml:1"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#token-permissions"}},{"name":"Security-Policy","score":10,"reason":"security policy file detected","details":["Info: security policy file detected: SECURITY.md:1","Info: Found linked content: SECURITY.md:1","Info: Found disclosure, vulnerability, and/or timelines in security policy: SECURITY.md:1","Info: Found text in security policy: SECURITY.md:1"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#security-policy"}},{"name":"Dangerous-Workflow","score":10,"reason":"no dangerous workflow patterns detected","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#dangerous-workflow"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#cii-best-practices"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#binary-artifacts"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Info: FSF or OSI recognized license: BSD 3-Clause \"New\" or \"Revised\" License: LICENSE:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#license"}},{"name":"Fuzzing","score":10,"reason":"project is fuzzed","details":["Info: PythonAtherisFuzzer integration found: fuzzing/fuzz_http11_request_parser.py:3","Info: PythonAtherisFuzzer integration found: fuzzing/fuzz_http11_response_parser.py:3","Info: PythonAtherisFuzzer integration found: fuzzing/fuzz_websocket_parser.py:3"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#fuzzing"}},{"name":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/release.yml:45: update your workflow using https://app.stepsecurity.io/secureworkflow/python-websockets/websockets/release.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/release.yml:47: update your workflow using https://app.stepsecurity.io/secureworkflow/python-websockets/websockets/release.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/release.yml:52: update your workflow using https://app.stepsecurity.io/secureworkflow/python-websockets/websockets/release.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/release.yml:56: update your workflow using https://app.stepsecurity.io/secureworkflow/python-websockets/websockets/release.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/release.yml:60: update your workflow using https://app.stepsecurity.io/secureworkflow/python-websockets/websockets/release.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/release.yml:79: update your workflow using https://app.stepsecurity.io/secureworkflow/python-websockets/websockets/release.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/release.yml:85: update your workflow using https://app.stepsecurity.io/secureworkflow/python-websockets/websockets/release.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/release.yml:89: update your workflow using https://app.stepsecurity.io/secureworkflow/python-websockets/websockets/release.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/release.yml:15: update your workflow using https://app.stepsecurity.io/secureworkflow/python-websockets/websockets/release.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/release.yml:17: update your workflow using https://app.stepsecurity.io/secureworkflow/python-websockets/websockets/release.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/release.yml:27: update your workflow using https://app.stepsecurity.io/secureworkflow/python-websockets/websockets/release.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/tests.yml:20: update your workflow using https://app.stepsecurity.io/secureworkflow/python-websockets/websockets/tests.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/tests.yml:22: update your workflow using https://app.stepsecurity.io/secureworkflow/python-websockets/websockets/tests.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/tests.yml:37: update your workflow using https://app.stepsecurity.io/secureworkflow/python-websockets/websockets/tests.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/tests.yml:39: update your workflow using https://app.stepsecurity.io/secureworkflow/python-websockets/websockets/tests.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/tests.yml:71: update your workflow using https://app.stepsecurity.io/secureworkflow/python-websockets/websockets/tests.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/tests.yml:73: update your workflow using https://app.stepsecurity.io/secureworkflow/python-websockets/websockets/tests.yml/main?enable=pin","Warn: containerImage not pinned by hash: example/deployment/kubernetes/Dockerfile:1: pin your Docker image by updating python:3.13-alpine to python:3.13-alpine@sha256:f196fd275fdad7287ccb4b0a85c2e402bb8c794d205cf6158909041c1ee9f38d","Warn: pipCommand not pinned by hash: example/deployment/kubernetes/Dockerfile:3","Warn: pipCommand not pinned by hash: .github/workflows/release.yml:22","Warn: pipCommand not pinned by hash: .github/workflows/tests.yml:27","Warn: pipCommand not pinned by hash: .github/workflows/tests.yml:44","Warn: pipCommand not pinned by hash: .github/workflows/tests.yml:79","Info:   0 out of  14 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of   3 third-party GitHubAction dependencies pinned","Info:   0 out of   1 containerImage dependencies pinned","Info:   0 out of   5 pipCommand dependencies pinned"],"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#pinned-dependencies"}},{"name":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#signed-releases"}},{"name":"Branch-Protection","score":0,"reason":"branch protection not enabled on development/release branches","details":["Warn: branch protection not enabled for branch 'main'"],"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#branch-protection"}},{"name":"Packaging","score":10,"reason":"packaging workflow detected","details":["Info: Project packages its releases by way of GitHub Actions.: .github/workflows/release.yml:65"],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#packaging"}},{"name":"Vulnerabilities","score":0,"reason":"17 existing vulnerabilities detected","details":["Warn: Project is vulnerable to: GHSA-2g68-c3qc-8985","Warn: Project is vulnerable to: PYSEC-2020-157 / GHSA-3p3h-qghp-hvh2","Warn: Project is vulnerable to: GHSA-f9vj-2wh5-fj8j","Warn: Project is vulnerable to: PYSEC-2019-140 / GHSA-gq9m-qvpx-68hc","Warn: Project is vulnerable to: PYSEC-2017-43 / GHSA-h2fp-xgx6-xh6f","Warn: Project is vulnerable to: PYSEC-2023-221 / GHSA-hrfv-mqp8-q5rw","Warn: Project is vulnerable to: GHSA-j544-7q9p-6xp8","Warn: Project is vulnerable to: PYSEC-2023-57 / GHSA-px8h-6qxv-m22q","Warn: Project is vulnerable to: GHSA-q34m-jh98-gwm2","Warn: Project is vulnerable to: PYSEC-2023-58 / GHSA-xg9f-g7g7-2323","Warn: Project is vulnerable to: PYSEC-2022-203","Warn: Project is vulnerable to: PYSEC-2021-95 / GHSA-8ch4-58qp-g3mp","Warn: Project is vulnerable to: PYSEC-2018-79","Warn: Project is vulnerable to: PYSEC-2021-328 / GHSA-22gh-3r9q-xf38","Warn: Project is vulnerable to: PYSEC-2018-56 / GHSA-6m53-c78q-7qmg","Warn: Project is vulnerable to: PYSEC-2022-170 / GHSA-gcx2-gvj7-pxv3","Warn: Project is vulnerable to: GHSA-wg33-5h85-7q5p"],"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#vulnerabilities"}},{"name":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 12 are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#sast"}}]},"last_synced_at":"2025-08-16T12:58:49.354Z","repository_id":7746372,"created_at":"2025-08-16T12:58:49.354Z","updated_at":"2025-08-16T12:58:49.354Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":36413472,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-08-06T04:43:03.162Z","status":"online","status_checked_at":"2026-08-08T02:00:08.763Z","response_time":96,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"},"owner_record":{"login":"python-websockets","name":"python-websockets","uuid":"130129149","kind":"organization","description":null,"email":null,"website":null,"location":null,"twitter":null,"company":null,"icon_url":"https://avatars.githubusercontent.com/u/130129149?v=4","repositories_count":1,"last_synced_at":"2023-04-09T06:52:51.862Z","metadata":{"has_sponsors_listing":false},"html_url":"https://github.com/python-websockets","funding_links":[],"total_stars":null,"followers":null,"following":null,"created_at":"2023-04-09T06:52:51.880Z","updated_at":"2023-04-09T06:52:51.880Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/python-websockets","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/python-websockets/repositories"},"tags":[{"name":"17.0.1","sha":"fd3f16cc4f57ace08e323a7806f1432e957cb75e","kind":"commit","published_at":"2026-07-31T10:23:33.000Z","download_url":"https://codeload.github.com/python-websockets/websockets/tar.gz/17.0.1","html_url":"https://github.com/python-websockets/websockets/releases/tag/17.0.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-websockets/websockets@17.0.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/17.0.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/17.0.1/manifests"},{"name":"17.0","sha":"5b395c5bddfb7599bd2b52b7b108f6999c294651","kind":"commit","published_at":"2026-07-29T17:10:56.000Z","download_url":"https://codeload.github.com/python-websockets/websockets/tar.gz/17.0","html_url":"https://github.com/python-websockets/websockets/releases/tag/17.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-websockets/websockets@17.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/17.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/17.0/manifests"},{"name":"16.1.1","sha":"01df1e4e4d482cc70dfcd4a13c7bac1e956d4b9a","kind":"commit","published_at":"2026-07-17T21:53:48.000Z","download_url":"https://codeload.github.com/python-websockets/websockets/tar.gz/16.1.1","html_url":"https://github.com/python-websockets/websockets/releases/tag/16.1.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-websockets/websockets@16.1.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/16.1.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/16.1.1/manifests"},{"name":"16.1","sha":"4df6f90d0724640275157a0fa784c234d309af82","kind":"commit","published_at":"2026-07-09T07:38:41.000Z","download_url":"https://codeload.github.com/python-websockets/websockets/tar.gz/16.1","html_url":"https://github.com/python-websockets/websockets/releases/tag/16.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-websockets/websockets@16.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/16.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/16.1/manifests"},{"name":"16.0","sha":"d4303a5d3e373fc8c34177c3dec1a9c75c8865fa","kind":"commit","published_at":"2026-01-10T09:08:08.000Z","download_url":"https://codeload.github.com/python-websockets/websockets/tar.gz/16.0","html_url":"https://github.com/python-websockets/websockets/releases/tag/16.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-websockets/websockets@16.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/16.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/16.0/manifests"},{"name":"15.0.1","sha":"37c9bc0781f0cc5af7c729947ef1833c1e12b70d","kind":"commit","published_at":"2025-03-05T19:42:59.000Z","download_url":"https://codeload.github.com/python-websockets/websockets/tar.gz/15.0.1","html_url":"https://github.com/python-websockets/websockets/releases/tag/15.0.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-websockets/websockets@15.0.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/15.0.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/15.0.1/manifests"},{"name":"15.0","sha":"7ac73c645329055a3c352077b8055e6ed65fa46c","kind":"commit","published_at":"2025-02-16T10:47:18.000Z","download_url":"https://codeload.github.com/python-websockets/websockets/tar.gz/15.0","html_url":"https://github.com/python-websockets/websockets/releases/tag/15.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-websockets/websockets@15.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/15.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/15.0/manifests"},{"name":"14.2","sha":"624a36cc9c1ea1369971387d7bb23533b2797350","kind":"commit","published_at":"2025-01-19T20:42:16.000Z","download_url":"https://codeload.github.com/python-websockets/websockets/tar.gz/14.2","html_url":"https://github.com/python-websockets/websockets/releases/tag/14.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-websockets/websockets@14.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/14.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/14.2/manifests"},{"name":"14.1","sha":"0403823185b272ae389da1c9182773932b4df950","kind":"commit","published_at":"2024-11-13T06:53:45.000Z","download_url":"https://codeload.github.com/python-websockets/websockets/tar.gz/14.1","html_url":"https://github.com/python-websockets/websockets/releases/tag/14.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-websockets/websockets@14.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/14.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/14.1/manifests"},{"name":"14.0","sha":"f0d20aafab027e9b99460b193dcb709872b219a5","kind":"commit","published_at":"2024-11-09T12:58:10.000Z","download_url":"https://codeload.github.com/python-websockets/websockets/tar.gz/14.0","html_url":"https://github.com/python-websockets/websockets/releases/tag/14.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-websockets/websockets@14.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/14.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/14.0/manifests"},{"name":"13.1","sha":"4d229bf9f583d593aa103287aee0a77c9fbc3a79","kind":"commit","published_at":"2024-09-21T17:13:12.000Z","download_url":"https://codeload.github.com/python-websockets/websockets/tar.gz/13.1","html_url":"https://github.com/python-websockets/websockets/releases/tag/13.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-websockets/websockets@13.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/13.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/13.1/manifests"},{"name":"13.0.1","sha":"157f7908c33cb540f7cf76568dde8aa6cf400504","kind":"commit","published_at":"2024-08-28T20:22:02.000Z","download_url":"https://codeload.github.com/python-websockets/websockets/tar.gz/13.0.1","html_url":"https://github.com/python-websockets/websockets/releases/tag/13.0.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-websockets/websockets@13.0.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/13.0.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/13.0.1/manifests"},{"name":"13.0","sha":"323adef1f3000cf07617d7ee649c27c0801126e6","kind":"commit","published_at":"2024-08-20T13:19:28.000Z","download_url":"https://codeload.github.com/python-websockets/websockets/tar.gz/13.0","html_url":"https://github.com/python-websockets/websockets/releases/tag/13.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-websockets/websockets@13.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/13.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/13.0/manifests"},{"name":"12.0","sha":"01195322d2620a44039b716cb93c108c2ca9b6b9","kind":"commit","published_at":"2023-10-21T13:52:23.000Z","download_url":"https://codeload.github.com/python-websockets/websockets/tar.gz/12.0","html_url":"https://github.com/python-websockets/websockets/releases/tag/12.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-websockets/websockets@12.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/12.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/12.0/manifests"},{"name":"11.0.3","sha":"bf858ac9a6e047c50614d6990a12345e1f38802c","kind":"commit","published_at":"2023-05-07T13:44:46.000Z","download_url":"https://codeload.github.com/python-websockets/websockets/tar.gz/11.0.3","html_url":"https://github.com/python-websockets/websockets/releases/tag/11.0.3","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-websockets/websockets@11.0.3","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/11.0.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/11.0.3/manifests"},{"name":"11.0.2","sha":"0ce16b23808a154829acf2ec786f1e67c1bd4cdf","kind":"commit","published_at":"2023-04-18T05:21:11.000Z","download_url":"https://codeload.github.com/python-websockets/websockets/tar.gz/11.0.2","html_url":"https://github.com/python-websockets/websockets/releases/tag/11.0.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-websockets/websockets@11.0.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/11.0.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/11.0.2/manifests"},{"name":"11.0.1","sha":"f55c1411a780d2829f095d426707860b90ff3c0c","kind":"commit","published_at":"2023-04-06T05:09:40.000Z","download_url":"https://codeload.github.com/python-websockets/websockets/tar.gz/11.0.1","html_url":"https://github.com/python-websockets/websockets/releases/tag/11.0.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-websockets/websockets@11.0.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/11.0.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/11.0.1/manifests"},{"name":"11.0","sha":"f516cf51e166ec0cc797fa6bb68b559e4c1fed8b","kind":"commit","published_at":"2023-04-02T08:07:51.000Z","download_url":"https://codeload.github.com/python-websockets/websockets/tar.gz/11.0","html_url":"https://github.com/python-websockets/websockets/releases/tag/11.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-websockets/websockets@11.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/11.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/11.0/manifests"},{"name":"10.4","sha":"d8c17625857797db029110d74417ae5f840aeb75","kind":"commit","published_at":"2022-10-25T19:48:44.000Z","download_url":"https://codeload.github.com/python-websockets/websockets/tar.gz/10.4","html_url":"https://github.com/python-websockets/websockets/releases/tag/10.4","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-websockets/websockets@10.4","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/10.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/10.4/manifests"},{"name":"10.3","sha":"0d9a251a338f549b91e13cc346b0f73fd5964493","kind":"commit","published_at":"2022-04-17T14:12:42.000Z","download_url":"https://codeload.github.com/python-websockets/websockets/tar.gz/10.3","html_url":"https://github.com/python-websockets/websockets/releases/tag/10.3","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-websockets/websockets@10.3","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/10.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/10.3/manifests"},{"name":"10.2","sha":"498cc8c061e53f0001cb2e3ade22ee8ce5ff11a1","kind":"commit","published_at":"2022-02-21T06:41:08.000Z","download_url":"https://codeload.github.com/python-websockets/websockets/tar.gz/10.2","html_url":"https://github.com/python-websockets/websockets/releases/tag/10.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-websockets/websockets@10.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/10.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/10.2/manifests"},{"name":"10.1","sha":"5f63545517270cd3218c2ed19df190f5ce88f795","kind":"commit","published_at":"2021-11-14T19:53:17.000Z","download_url":"https://codeload.github.com/python-websockets/websockets/tar.gz/10.1","html_url":"https://github.com/python-websockets/websockets/releases/tag/10.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-websockets/websockets@10.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/10.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/10.1/manifests"},{"name":"10.0","sha":"13eff12bb4c995b50154fdc250281c92ddccaca0","kind":"commit","published_at":"2021-09-09T05:55:31.000Z","download_url":"https://codeload.github.com/python-websockets/websockets/tar.gz/10.0","html_url":"https://github.com/python-websockets/websockets/releases/tag/10.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-websockets/websockets@10.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/10.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/10.0/manifests"},{"name":"9.1","sha":"d0f328888f3e695aa64d78dcf48af4ece219221b","kind":"commit","published_at":"2021-05-27T11:37:45.000Z","download_url":"https://codeload.github.com/python-websockets/websockets/tar.gz/9.1","html_url":"https://github.com/python-websockets/websockets/releases/tag/9.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-websockets/websockets@9.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/9.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/9.1/manifests"},{"name":"9.0.2","sha":"a14226afb77b524c2ced7d649ac7420a14992716","kind":"commit","published_at":"2021-05-15T16:01:23.000Z","download_url":"https://codeload.github.com/python-websockets/websockets/tar.gz/9.0.2","html_url":"https://github.com/python-websockets/websockets/releases/tag/9.0.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-websockets/websockets@9.0.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/9.0.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/9.0.2/manifests"},{"name":"9.0.1","sha":"fc176f462b6a5ef4f470df415780b09fed5da7c1","kind":"commit","published_at":"2021-05-02T18:49:05.000Z","download_url":"https://codeload.github.com/python-websockets/websockets/tar.gz/9.0.1","html_url":"https://github.com/python-websockets/websockets/releases/tag/9.0.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-websockets/websockets@9.0.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/9.0.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/9.0.1/manifests"},{"name":"9.0","sha":"5ab214b00f38cae3976fce5a315fbfa30762b60d","kind":"commit","published_at":"2021-05-01T20:51:32.000Z","download_url":"https://codeload.github.com/python-websockets/websockets/tar.gz/9.0","html_url":"https://github.com/python-websockets/websockets/releases/tag/9.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-websockets/websockets@9.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/9.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/9.0/manifests"},{"name":"8.1","sha":"139085fe2624192a5a6c72b1e5db211dcec6ced1","kind":"commit","published_at":"2019-11-01T13:39:33.000Z","download_url":"https://codeload.github.com/python-websockets/websockets/tar.gz/8.1","html_url":"https://github.com/python-websockets/websockets/releases/tag/8.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-websockets/websockets@8.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/8.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/8.1/manifests"},{"name":"8.0.2","sha":"e8deaf9a93302c291eb8c05456a5bf90e94d7b63","kind":"commit","published_at":"2019-07-31T19:14:25.000Z","download_url":"https://codeload.github.com/python-websockets/websockets/tar.gz/8.0.2","html_url":"https://github.com/python-websockets/websockets/releases/tag/8.0.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-websockets/websockets@8.0.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/8.0.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/8.0.2/manifests"},{"name":"8.0.1","sha":"5d059da31f0d967ddf300a15f03fd00a92c8712f","kind":"commit","published_at":"2019-07-21T05:38:10.000Z","download_url":"https://codeload.github.com/python-websockets/websockets/tar.gz/8.0.1","html_url":"https://github.com/python-websockets/websockets/releases/tag/8.0.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-websockets/websockets@8.0.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/8.0.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/8.0.1/manifests"},{"name":"8.0","sha":"02af45351df41603c2767b004b29ab158337a667","kind":"commit","published_at":"2019-07-07T18:06:27.000Z","download_url":"https://codeload.github.com/python-websockets/websockets/tar.gz/8.0","html_url":"https://github.com/python-websockets/websockets/releases/tag/8.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-websockets/websockets@8.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/8.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/8.0/manifests"},{"name":"7.0","sha":"1138974fc7dd003d6626faf0b5f3a13f3a44c13d","kind":"commit","published_at":"2018-11-01T14:57:01.000Z","download_url":"https://codeload.github.com/python-websockets/websockets/tar.gz/7.0","html_url":"https://github.com/python-websockets/websockets/releases/tag/7.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-websockets/websockets@7.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/7.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/7.0/manifests"},{"name":"6.0","sha":"67ba5335f828ff446ac0e7cab7a9b45ed2513724","kind":"commit","published_at":"2018-07-16T19:50:15.000Z","download_url":"https://codeload.github.com/python-websockets/websockets/tar.gz/6.0","html_url":"https://github.com/python-websockets/websockets/releases/tag/6.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-websockets/websockets@6.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/6.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/6.0/manifests"},{"name":"5.0.1","sha":"458169b1c8ce692633d9bf90e8474c249936d49d","kind":"commit","published_at":"2018-05-24T11:16:36.000Z","download_url":"https://codeload.github.com/python-websockets/websockets/tar.gz/5.0.1","html_url":"https://github.com/python-websockets/websockets/releases/tag/5.0.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-websockets/websockets@5.0.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/5.0.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/5.0.1/manifests"},{"name":"5.0","sha":"c08a3186b750be3fdfbe40c7f92b45e026e563e6","kind":"commit","published_at":"2018-05-22T05:19:55.000Z","download_url":"https://codeload.github.com/python-websockets/websockets/tar.gz/5.0","html_url":"https://github.com/python-websockets/websockets/releases/tag/5.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-websockets/websockets@5.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/5.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/5.0/manifests"},{"name":"4.0.1","sha":"a6211d48c57a0886ee1eefa87651c99bd08d4fd2","kind":"commit","published_at":"2017-11-02T20:14:59.000Z","download_url":"https://codeload.github.com/python-websockets/websockets/tar.gz/4.0.1","html_url":"https://github.com/python-websockets/websockets/releases/tag/4.0.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-websockets/websockets@4.0.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/4.0.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/4.0.1/manifests"},{"name":"4.0","sha":"93c7bc1446f1f9e99b0919dceacf84fd92832811","kind":"commit","published_at":"2017-11-02T06:50:44.000Z","download_url":"https://codeload.github.com/python-websockets/websockets/tar.gz/4.0","html_url":"https://github.com/python-websockets/websockets/releases/tag/4.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-websockets/websockets@4.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/4.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/4.0/manifests"},{"name":"3.4","sha":"e812f02d30d930eb802e0439a397431880bad5f1","kind":"commit","published_at":"2017-08-20T11:58:20.000Z","download_url":"https://codeload.github.com/python-websockets/websockets/tar.gz/3.4","html_url":"https://github.com/python-websockets/websockets/releases/tag/3.4","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-websockets/websockets@3.4","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/3.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/3.4/manifests"},{"name":"3.3","sha":"c46ab352f6046522b4ac096418367bbd12d76ae6","kind":"commit","published_at":"2017-03-29T13:47:49.000Z","download_url":"https://codeload.github.com/python-websockets/websockets/tar.gz/3.3","html_url":"https://github.com/python-websockets/websockets/releases/tag/3.3","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-websockets/websockets@3.3","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/3.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/3.3/manifests"},{"name":"3.2","sha":"6e728f0357db864f5d1f6495ca9ab27c47c636af","kind":"commit","published_at":"2016-08-17T21:22:45.000Z","download_url":"https://codeload.github.com/python-websockets/websockets/tar.gz/3.2","html_url":"https://github.com/python-websockets/websockets/releases/tag/3.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-websockets/websockets@3.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/3.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/3.2/manifests"},{"name":"3.1","sha":"817a14fd3b85c0bdc4449bfe792098eaa2a45bfe","kind":"commit","published_at":"2016-04-21T20:20:10.000Z","download_url":"https://codeload.github.com/python-websockets/websockets/tar.gz/3.1","html_url":"https://github.com/python-websockets/websockets/releases/tag/3.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-websockets/websockets@3.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/3.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/3.1/manifests"},{"name":"3.0","sha":"7d7cac390637021ab9944dc7028a7b2e8f84983f","kind":"commit","published_at":"2015-12-25T11:12:35.000Z","download_url":"https://codeload.github.com/python-websockets/websockets/tar.gz/3.0","html_url":"https://github.com/python-websockets/websockets/releases/tag/3.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-websockets/websockets@3.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/3.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/3.0/manifests"},{"name":"2.7","sha":"2bd32e949e397f6c82d7de5d45363889bae65b9d","kind":"commit","published_at":"2015-11-18T19:52:09.000Z","download_url":"https://codeload.github.com/python-websockets/websockets/tar.gz/2.7","html_url":"https://github.com/python-websockets/websockets/releases/tag/2.7","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-websockets/websockets@2.7","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/2.7","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/2.7/manifests"},{"name":"2.6","sha":"72f9b68b87395bdf598411398d07917b043dfc41","kind":"commit","published_at":"2015-08-18T18:13:37.000Z","download_url":"https://codeload.github.com/python-websockets/websockets/tar.gz/2.6","html_url":"https://github.com/python-websockets/websockets/releases/tag/2.6","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-websockets/websockets@2.6","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/2.6","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/2.6/manifests"},{"name":"2.5","sha":"0c43316b07e93bddb3a688a104713f8a91dfaff5","kind":"commit","published_at":"2015-07-28T20:41:01.000Z","download_url":"https://codeload.github.com/python-websockets/websockets/tar.gz/2.5","html_url":"https://github.com/python-websockets/websockets/releases/tag/2.5","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-websockets/websockets@2.5","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/2.5","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/2.5/manifests"},{"name":"2.4","sha":"9b81b7e5da8cc37cd7644ad58ac9648070703fe8","kind":"commit","published_at":"2015-01-31T20:10:50.000Z","download_url":"https://codeload.github.com/python-websockets/websockets/tar.gz/2.4","html_url":"https://github.com/python-websockets/websockets/releases/tag/2.4","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-websockets/websockets@2.4","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/2.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/2.4/manifests"},{"name":"2.3","sha":"67fa773d72b6b3888e86ae65f3d4f89ceb705198","kind":"commit","published_at":"2014-11-03T22:05:09.000Z","download_url":"https://codeload.github.com/python-websockets/websockets/tar.gz/2.3","html_url":"https://github.com/python-websockets/websockets/releases/tag/2.3","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-websockets/websockets@2.3","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/2.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/2.3/manifests"},{"name":"2.2","sha":"7e4ef005696a956def34fa735422ca4e1ef17197","kind":"commit","published_at":"2014-07-28T09:14:48.000Z","download_url":"https://codeload.github.com/python-websockets/websockets/tar.gz/2.2","html_url":"https://github.com/python-websockets/websockets/releases/tag/2.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-websockets/websockets@2.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/2.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/2.2/manifests"},{"name":"2.1","sha":"481986fd209c5d0667195390b5f1f56f2ee899a7","kind":"commit","published_at":"2014-04-26T13:47:49.000Z","download_url":"https://codeload.github.com/python-websockets/websockets/tar.gz/2.1","html_url":"https://github.com/python-websockets/websockets/releases/tag/2.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-websockets/websockets@2.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/2.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/2.1/manifests"},{"name":"2.0","sha":"d03ba5669bd386f8e873a620ff6a5a6926b340b4","kind":"commit","published_at":"2014-02-16T18:38:18.000Z","download_url":"https://codeload.github.com/python-websockets/websockets/tar.gz/2.0","html_url":"https://github.com/python-websockets/websockets/releases/tag/2.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-websockets/websockets@2.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/2.0/manifests"},{"name":"1.0","sha":"1aa31d0545c877aea22d3b4452a4b92dbd631306","kind":"commit","published_at":"2013-11-14T16:29:15.000Z","download_url":"https://codeload.github.com/python-websockets/websockets/tar.gz/1.0","html_url":"https://github.com/python-websockets/websockets/releases/tag/1.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-websockets/websockets@1.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/1.0/manifests"}]},"repo_metadata_updated_at":"2026-08-15T19:29:06.201Z","dependent_packages_count":3,"downloads":11801,"downloads_period":"total","dependent_repos_count":37,"rankings":{"downloads":null,"dependent_repos_count":26.630103595368677,"dependent_packages_count":30.65204143814747,"stargazers_count":11.913467397928093,"forks_count":15.569774527726995,"docker_downloads_count":null,"average":21.19134673979281},"purl":"pkg:conda/websockets","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/conda/websockets","docker_dependents_count":null,"docker_downloads_count":null,"usage_url":"https://repos.ecosyste.ms/usage/conda/websockets","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/conda/websockets/dependencies","status":null,"funding_links":["https://github.com/sponsors/python-websockets","https://opencollective.com/websockets","https://tidelift.com/funding/github/pypi/websockets"],"critical":null,"issue_metadata":{"last_synced_at":"2026-08-11T06:02:32.636Z","issues_count":308,"pull_requests_count":273,"avg_time_to_close_issue":13075627.309859155,"avg_time_to_close_pull_request":5649800.532520325,"issues_closed_count":284,"pull_requests_closed_count":246,"pull_request_authors_count":70,"issue_authors_count":246,"avg_comments_per_issue":4.064935064935065,"avg_comments_per_pull_request":1.531135531135531,"merged_pull_requests_count":153,"bot_issues_count":0,"bot_pull_requests_count":65,"past_year_issues_count":31,"past_year_pull_requests_count":60,"past_year_avg_time_to_close_issue":4172904.0714285714,"past_year_avg_time_to_close_pull_request":1766259.6851851852,"past_year_issues_closed_count":28,"past_year_pull_requests_closed_count":54,"past_year_pull_request_authors_count":21,"past_year_issue_authors_count":31,"past_year_avg_comments_per_issue":4.032258064516129,"past_year_avg_comments_per_pull_request":1.0166666666666666,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":22,"past_year_merged_pull_requests_count":36,"issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/issues","maintainers":[{"login":"aaugustin","count":140,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/aaugustin"},{"login":"cjerdonek","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/cjerdonek"}],"active_maintainers":[{"login":"aaugustin","count":16,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/aaugustin"}]},"versions_url":"https://packages.ecosyste.ms/api/v1/registries/anaconda.org/packages/websockets/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/anaconda.org/packages/websockets/version_numbers","latest_version_url":"https://packages.ecosyste.ms/api/v1/registries/anaconda.org/packages/websockets/latest_version","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/anaconda.org/packages/websockets/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/anaconda.org/packages/websockets/related_packages","codemeta_url":"https://packages.ecosyste.ms/api/v1/registries/anaconda.org/packages/websockets/codemeta","maintainers":[],"registry":{"name":"anaconda.org","url":"https://anaconda.org","ecosystem":"conda","default":true,"packages_count":5475,"maintainers_count":0,"namespaces_count":0,"keywords_count":3313,"github":"Anaconda","metadata":{"kind":"anaconda","key":"Main","api":"https://repo.ananconda.com","funded_packages_count":852},"icon_url":"https://github.com/Anaconda.png","created_at":"2022-10-03T15:37:08.736Z","updated_at":"2026-08-24T05:06:29.101Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/anaconda.org/packages","maintainers_url":"https://packages.ecosyste.ms/api/v1/registries/anaconda.org/maintainers","namespaces_url":"https://packages.ecosyste.ms/api/v1/registries/anaconda.org/namespaces"}},{"id":2969110,"name":"websockets","ecosystem":"pypi","description":"An implementation of the WebSocket Protocol (RFC 6455 \u0026 7692)","homepage":"https://github.com/python-websockets/websockets","licenses":"BSD-3-Clause","normalized_licenses":["BSD-3-Clause"],"repository_url":"https://github.com/python-websockets/websockets","keywords_array":["WebSocket"],"namespace":null,"versions_count":52,"first_release_published_at":"2013-11-14T16:29:31.000Z","latest_release_published_at":"2026-07-31T11:29:04.000Z","latest_release_number":"17.0.1","last_synced_at":"2026-08-23T12:04:20.177Z","created_at":"2022-04-10T13:03:41.848Z","updated_at":"2026-08-23T12:04:20.178Z","registry_url":"https://pypi.org/project/websockets/","install_command":"pip install websockets --index-url https://pypi.org/simple","documentation_url":"https://websockets.readthedocs.io/","metadata":{"funding":"https://tidelift.com/subscription/pkg/pypi-websockets?utm_source=pypi-websockets\u0026utm_medium=referral\u0026utm_campaign=readme","documentation":"https://websockets.readthedocs.io/","classifiers":["Development Status :: 5 - Production/Stable","Environment :: Web Environment","Intended Audience :: Developers","Operating System :: OS Independent","Programming Language :: Python","Programming Language :: Python :: 3","Programming Language :: Python :: 3.11","Programming Language :: Python :: 3.12","Programming Language :: Python :: 3.13","Programming Language :: Python :: 3.14","Programming Language :: Python :: 3.15"],"normalized_name":"websockets","project_status":null},"repo_metadata":{"id":7746372,"uuid":"9113587","full_name":"python-websockets/websockets","owner":"python-websockets","description":"Library for building WebSocket servers and clients in Python","archived":false,"fork":false,"pushed_at":"2026-08-10T19:18:46.000Z","size":4446,"stargazers_count":5713,"open_issues_count":0,"forks_count":602,"subscribers_count":107,"default_branch":"main","last_synced_at":"2026-08-15T19:28:34.666Z","etag":null,"topics":["python","python3","websocket","websocket-client","websocket-library","websocket-server","websockets"],"latest_commit_sha":null,"homepage":"https://websockets.readthedocs.io/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/python-websockets.png","metadata":{"files":{"readme":"README.rst","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"claude":null,"gemini":null,"cursor":null,"copilot":null,"dco":null,"cla":null,"disclosure":null},"funding":{"github":"python-websockets","open_collective":"websockets","tidelift":"pypi/websockets"}},"created_at":"2013-03-30T08:59:30.000Z","updated_at":"2026-08-15T16:39:54.000Z","dependencies_parsed_at":"2026-08-08T04:49:02.597Z","dependency_job_id":null,"html_url":"https://github.com/python-websockets/websockets","commit_stats":{"total_commits":1510,"total_committers":76,"mean_commits":19.86842105263158,"dds":"0.22980132450331126","last_synced_commit":"76f6f573e2ecb279230c2bf56c07bf4d4f717147"},"previous_names":["aaugustin/websockets"],"tags_count":51,"template":false,"template_full_name":null,"purl":"pkg:github/python-websockets/websockets","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/python-websockets","download_url":"https://codeload.github.com/python-websockets/websockets/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/sbom","scorecard":{"id":159660,"data":{"date":"2025-08-04","repo":{"name":"github.com/python-websockets/websockets","commit":"5c809b0ae3641605c86e9f0d66136168b0d8bdd2"},"scorecard":{"version":"v5.2.1-28-gc1d103a9","commit":"c1d103a9bb9f635ec7260bf9aa0699466fa4be0e"},"score":5.1,"checks":[{"name":"Maintained","score":10,"reason":"12 commit(s) and 19 issue activity found in the last 90 days -- score normalized to 10","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#maintained"}},{"name":"Code-Review","score":1,"reason":"Found 4/27 approved changesets -- score normalized to 1","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#code-review"}},{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: jobLevel 'contents' permission set to 'write': .github/workflows/release.yml:76","Warn: no topLevel permission defined: .github/workflows/release.yml:1","Warn: no topLevel permission defined: .github/workflows/tests.yml:1"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#token-permissions"}},{"name":"Security-Policy","score":10,"reason":"security policy file detected","details":["Info: security policy file detected: SECURITY.md:1","Info: Found linked content: SECURITY.md:1","Info: Found disclosure, vulnerability, and/or timelines in security policy: SECURITY.md:1","Info: Found text in security policy: SECURITY.md:1"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#security-policy"}},{"name":"Dangerous-Workflow","score":10,"reason":"no dangerous workflow patterns detected","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#dangerous-workflow"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#cii-best-practices"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#binary-artifacts"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Info: FSF or OSI recognized license: BSD 3-Clause \"New\" or \"Revised\" License: LICENSE:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#license"}},{"name":"Fuzzing","score":10,"reason":"project is fuzzed","details":["Info: PythonAtherisFuzzer integration found: fuzzing/fuzz_http11_request_parser.py:3","Info: PythonAtherisFuzzer integration found: fuzzing/fuzz_http11_response_parser.py:3","Info: PythonAtherisFuzzer integration found: fuzzing/fuzz_websocket_parser.py:3"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#fuzzing"}},{"name":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/release.yml:45: update your workflow using https://app.stepsecurity.io/secureworkflow/python-websockets/websockets/release.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/release.yml:47: update your workflow using https://app.stepsecurity.io/secureworkflow/python-websockets/websockets/release.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/release.yml:52: update your workflow using https://app.stepsecurity.io/secureworkflow/python-websockets/websockets/release.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/release.yml:56: update your workflow using https://app.stepsecurity.io/secureworkflow/python-websockets/websockets/release.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/release.yml:60: update your workflow using https://app.stepsecurity.io/secureworkflow/python-websockets/websockets/release.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/release.yml:79: update your workflow using https://app.stepsecurity.io/secureworkflow/python-websockets/websockets/release.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/release.yml:85: update your workflow using https://app.stepsecurity.io/secureworkflow/python-websockets/websockets/release.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/release.yml:89: update your workflow using https://app.stepsecurity.io/secureworkflow/python-websockets/websockets/release.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/release.yml:15: update your workflow using https://app.stepsecurity.io/secureworkflow/python-websockets/websockets/release.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/release.yml:17: update your workflow using https://app.stepsecurity.io/secureworkflow/python-websockets/websockets/release.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/release.yml:27: update your workflow using https://app.stepsecurity.io/secureworkflow/python-websockets/websockets/release.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/tests.yml:20: update your workflow using https://app.stepsecurity.io/secureworkflow/python-websockets/websockets/tests.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/tests.yml:22: update your workflow using https://app.stepsecurity.io/secureworkflow/python-websockets/websockets/tests.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/tests.yml:37: update your workflow using https://app.stepsecurity.io/secureworkflow/python-websockets/websockets/tests.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/tests.yml:39: update your workflow using https://app.stepsecurity.io/secureworkflow/python-websockets/websockets/tests.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/tests.yml:71: update your workflow using https://app.stepsecurity.io/secureworkflow/python-websockets/websockets/tests.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/tests.yml:73: update your workflow using https://app.stepsecurity.io/secureworkflow/python-websockets/websockets/tests.yml/main?enable=pin","Warn: containerImage not pinned by hash: example/deployment/kubernetes/Dockerfile:1: pin your Docker image by updating python:3.13-alpine to python:3.13-alpine@sha256:f196fd275fdad7287ccb4b0a85c2e402bb8c794d205cf6158909041c1ee9f38d","Warn: pipCommand not pinned by hash: example/deployment/kubernetes/Dockerfile:3","Warn: pipCommand not pinned by hash: .github/workflows/release.yml:22","Warn: pipCommand not pinned by hash: .github/workflows/tests.yml:27","Warn: pipCommand not pinned by hash: .github/workflows/tests.yml:44","Warn: pipCommand not pinned by hash: .github/workflows/tests.yml:79","Info:   0 out of  14 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of   3 third-party GitHubAction dependencies pinned","Info:   0 out of   1 containerImage dependencies pinned","Info:   0 out of   5 pipCommand dependencies pinned"],"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#pinned-dependencies"}},{"name":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#signed-releases"}},{"name":"Branch-Protection","score":0,"reason":"branch protection not enabled on development/release branches","details":["Warn: branch protection not enabled for branch 'main'"],"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#branch-protection"}},{"name":"Packaging","score":10,"reason":"packaging workflow detected","details":["Info: Project packages its releases by way of GitHub Actions.: .github/workflows/release.yml:65"],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#packaging"}},{"name":"Vulnerabilities","score":0,"reason":"17 existing vulnerabilities detected","details":["Warn: Project is vulnerable to: GHSA-2g68-c3qc-8985","Warn: Project is vulnerable to: PYSEC-2020-157 / GHSA-3p3h-qghp-hvh2","Warn: Project is vulnerable to: GHSA-f9vj-2wh5-fj8j","Warn: Project is vulnerable to: PYSEC-2019-140 / GHSA-gq9m-qvpx-68hc","Warn: Project is vulnerable to: PYSEC-2017-43 / GHSA-h2fp-xgx6-xh6f","Warn: Project is vulnerable to: PYSEC-2023-221 / GHSA-hrfv-mqp8-q5rw","Warn: Project is vulnerable to: GHSA-j544-7q9p-6xp8","Warn: Project is vulnerable to: PYSEC-2023-57 / GHSA-px8h-6qxv-m22q","Warn: Project is vulnerable to: GHSA-q34m-jh98-gwm2","Warn: Project is vulnerable to: PYSEC-2023-58 / GHSA-xg9f-g7g7-2323","Warn: Project is vulnerable to: PYSEC-2022-203","Warn: Project is vulnerable to: PYSEC-2021-95 / GHSA-8ch4-58qp-g3mp","Warn: Project is vulnerable to: PYSEC-2018-79","Warn: Project is vulnerable to: PYSEC-2021-328 / GHSA-22gh-3r9q-xf38","Warn: Project is vulnerable to: PYSEC-2018-56 / GHSA-6m53-c78q-7qmg","Warn: Project is vulnerable to: PYSEC-2022-170 / GHSA-gcx2-gvj7-pxv3","Warn: Project is vulnerable to: GHSA-wg33-5h85-7q5p"],"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#vulnerabilities"}},{"name":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 12 are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#sast"}}]},"last_synced_at":"2025-08-16T12:58:49.354Z","repository_id":7746372,"created_at":"2025-08-16T12:58:49.354Z","updated_at":"2025-08-16T12:58:49.354Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":36709410,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-08-06T04:43:03.162Z","status":"online","status_checked_at":"2026-08-16T02:00:06.462Z","response_time":62,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"},"owner_record":{"login":"python-websockets","name":"python-websockets","uuid":"130129149","kind":"organization","description":null,"email":null,"website":null,"location":null,"twitter":null,"company":null,"icon_url":"https://avatars.githubusercontent.com/u/130129149?v=4","repositories_count":1,"last_synced_at":"2023-04-09T06:52:51.862Z","metadata":{"has_sponsors_listing":false},"html_url":"https://github.com/python-websockets","funding_links":[],"total_stars":null,"followers":null,"following":null,"created_at":"2023-04-09T06:52:51.880Z","updated_at":"2023-04-09T06:52:51.880Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/python-websockets","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/python-websockets/repositories"},"tags":[{"name":"17.0.1","sha":"fd3f16cc4f57ace08e323a7806f1432e957cb75e","kind":"commit","published_at":"2026-07-31T10:23:33.000Z","download_url":"https://codeload.github.com/python-websockets/websockets/tar.gz/17.0.1","html_url":"https://github.com/python-websockets/websockets/releases/tag/17.0.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-websockets/websockets@17.0.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/17.0.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/17.0.1/manifests"},{"name":"17.0","sha":"5b395c5bddfb7599bd2b52b7b108f6999c294651","kind":"commit","published_at":"2026-07-29T17:10:56.000Z","download_url":"https://codeload.github.com/python-websockets/websockets/tar.gz/17.0","html_url":"https://github.com/python-websockets/websockets/releases/tag/17.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-websockets/websockets@17.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/17.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/17.0/manifests"},{"name":"16.1.1","sha":"01df1e4e4d482cc70dfcd4a13c7bac1e956d4b9a","kind":"commit","published_at":"2026-07-17T21:53:48.000Z","download_url":"https://codeload.github.com/python-websockets/websockets/tar.gz/16.1.1","html_url":"https://github.com/python-websockets/websockets/releases/tag/16.1.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-websockets/websockets@16.1.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/16.1.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/16.1.1/manifests"},{"name":"16.1","sha":"4df6f90d0724640275157a0fa784c234d309af82","kind":"commit","published_at":"2026-07-09T07:38:41.000Z","download_url":"https://codeload.github.com/python-websockets/websockets/tar.gz/16.1","html_url":"https://github.com/python-websockets/websockets/releases/tag/16.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-websockets/websockets@16.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/16.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/16.1/manifests"},{"name":"16.0","sha":"d4303a5d3e373fc8c34177c3dec1a9c75c8865fa","kind":"commit","published_at":"2026-01-10T09:08:08.000Z","download_url":"https://codeload.github.com/python-websockets/websockets/tar.gz/16.0","html_url":"https://github.com/python-websockets/websockets/releases/tag/16.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-websockets/websockets@16.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/16.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/16.0/manifests"},{"name":"15.0.1","sha":"37c9bc0781f0cc5af7c729947ef1833c1e12b70d","kind":"commit","published_at":"2025-03-05T19:42:59.000Z","download_url":"https://codeload.github.com/python-websockets/websockets/tar.gz/15.0.1","html_url":"https://github.com/python-websockets/websockets/releases/tag/15.0.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-websockets/websockets@15.0.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/15.0.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/15.0.1/manifests"},{"name":"15.0","sha":"7ac73c645329055a3c352077b8055e6ed65fa46c","kind":"commit","published_at":"2025-02-16T10:47:18.000Z","download_url":"https://codeload.github.com/python-websockets/websockets/tar.gz/15.0","html_url":"https://github.com/python-websockets/websockets/releases/tag/15.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-websockets/websockets@15.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/15.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/15.0/manifests"},{"name":"14.2","sha":"624a36cc9c1ea1369971387d7bb23533b2797350","kind":"commit","published_at":"2025-01-19T20:42:16.000Z","download_url":"https://codeload.github.com/python-websockets/websockets/tar.gz/14.2","html_url":"https://github.com/python-websockets/websockets/releases/tag/14.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-websockets/websockets@14.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/14.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/14.2/manifests"},{"name":"14.1","sha":"0403823185b272ae389da1c9182773932b4df950","kind":"commit","published_at":"2024-11-13T06:53:45.000Z","download_url":"https://codeload.github.com/python-websockets/websockets/tar.gz/14.1","html_url":"https://github.com/python-websockets/websockets/releases/tag/14.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-websockets/websockets@14.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/14.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/14.1/manifests"},{"name":"14.0","sha":"f0d20aafab027e9b99460b193dcb709872b219a5","kind":"commit","published_at":"2024-11-09T12:58:10.000Z","download_url":"https://codeload.github.com/python-websockets/websockets/tar.gz/14.0","html_url":"https://github.com/python-websockets/websockets/releases/tag/14.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-websockets/websockets@14.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/14.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/14.0/manifests"},{"name":"13.1","sha":"4d229bf9f583d593aa103287aee0a77c9fbc3a79","kind":"commit","published_at":"2024-09-21T17:13:12.000Z","download_url":"https://codeload.github.com/python-websockets/websockets/tar.gz/13.1","html_url":"https://github.com/python-websockets/websockets/releases/tag/13.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-websockets/websockets@13.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/13.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/13.1/manifests"},{"name":"13.0.1","sha":"157f7908c33cb540f7cf76568dde8aa6cf400504","kind":"commit","published_at":"2024-08-28T20:22:02.000Z","download_url":"https://codeload.github.com/python-websockets/websockets/tar.gz/13.0.1","html_url":"https://github.com/python-websockets/websockets/releases/tag/13.0.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-websockets/websockets@13.0.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/13.0.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/13.0.1/manifests"},{"name":"13.0","sha":"323adef1f3000cf07617d7ee649c27c0801126e6","kind":"commit","published_at":"2024-08-20T13:19:28.000Z","download_url":"https://codeload.github.com/python-websockets/websockets/tar.gz/13.0","html_url":"https://github.com/python-websockets/websockets/releases/tag/13.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-websockets/websockets@13.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/13.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/13.0/manifests"},{"name":"12.0","sha":"01195322d2620a44039b716cb93c108c2ca9b6b9","kind":"commit","published_at":"2023-10-21T13:52:23.000Z","download_url":"https://codeload.github.com/python-websockets/websockets/tar.gz/12.0","html_url":"https://github.com/python-websockets/websockets/releases/tag/12.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-websockets/websockets@12.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/12.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/12.0/manifests"},{"name":"11.0.3","sha":"bf858ac9a6e047c50614d6990a12345e1f38802c","kind":"commit","published_at":"2023-05-07T13:44:46.000Z","download_url":"https://codeload.github.com/python-websockets/websockets/tar.gz/11.0.3","html_url":"https://github.com/python-websockets/websockets/releases/tag/11.0.3","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-websockets/websockets@11.0.3","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/11.0.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/11.0.3/manifests"},{"name":"11.0.2","sha":"0ce16b23808a154829acf2ec786f1e67c1bd4cdf","kind":"commit","published_at":"2023-04-18T05:21:11.000Z","download_url":"https://codeload.github.com/python-websockets/websockets/tar.gz/11.0.2","html_url":"https://github.com/python-websockets/websockets/releases/tag/11.0.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-websockets/websockets@11.0.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/11.0.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/11.0.2/manifests"},{"name":"11.0.1","sha":"f55c1411a780d2829f095d426707860b90ff3c0c","kind":"commit","published_at":"2023-04-06T05:09:40.000Z","download_url":"https://codeload.github.com/python-websockets/websockets/tar.gz/11.0.1","html_url":"https://github.com/python-websockets/websockets/releases/tag/11.0.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-websockets/websockets@11.0.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/11.0.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/11.0.1/manifests"},{"name":"11.0","sha":"f516cf51e166ec0cc797fa6bb68b559e4c1fed8b","kind":"commit","published_at":"2023-04-02T08:07:51.000Z","download_url":"https://codeload.github.com/python-websockets/websockets/tar.gz/11.0","html_url":"https://github.com/python-websockets/websockets/releases/tag/11.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-websockets/websockets@11.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/11.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/11.0/manifests"},{"name":"10.4","sha":"d8c17625857797db029110d74417ae5f840aeb75","kind":"commit","published_at":"2022-10-25T19:48:44.000Z","download_url":"https://codeload.github.com/python-websockets/websockets/tar.gz/10.4","html_url":"https://github.com/python-websockets/websockets/releases/tag/10.4","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-websockets/websockets@10.4","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/10.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/10.4/manifests"},{"name":"10.3","sha":"0d9a251a338f549b91e13cc346b0f73fd5964493","kind":"commit","published_at":"2022-04-17T14:12:42.000Z","download_url":"https://codeload.github.com/python-websockets/websockets/tar.gz/10.3","html_url":"https://github.com/python-websockets/websockets/releases/tag/10.3","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-websockets/websockets@10.3","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/10.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/10.3/manifests"},{"name":"10.2","sha":"498cc8c061e53f0001cb2e3ade22ee8ce5ff11a1","kind":"commit","published_at":"2022-02-21T06:41:08.000Z","download_url":"https://codeload.github.com/python-websockets/websockets/tar.gz/10.2","html_url":"https://github.com/python-websockets/websockets/releases/tag/10.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-websockets/websockets@10.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/10.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/10.2/manifests"},{"name":"10.1","sha":"5f63545517270cd3218c2ed19df190f5ce88f795","kind":"commit","published_at":"2021-11-14T19:53:17.000Z","download_url":"https://codeload.github.com/python-websockets/websockets/tar.gz/10.1","html_url":"https://github.com/python-websockets/websockets/releases/tag/10.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-websockets/websockets@10.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/10.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/10.1/manifests"},{"name":"10.0","sha":"13eff12bb4c995b50154fdc250281c92ddccaca0","kind":"commit","published_at":"2021-09-09T05:55:31.000Z","download_url":"https://codeload.github.com/python-websockets/websockets/tar.gz/10.0","html_url":"https://github.com/python-websockets/websockets/releases/tag/10.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-websockets/websockets@10.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/10.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/10.0/manifests"},{"name":"9.1","sha":"d0f328888f3e695aa64d78dcf48af4ece219221b","kind":"commit","published_at":"2021-05-27T11:37:45.000Z","download_url":"https://codeload.github.com/python-websockets/websockets/tar.gz/9.1","html_url":"https://github.com/python-websockets/websockets/releases/tag/9.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-websockets/websockets@9.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/9.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/9.1/manifests"},{"name":"9.0.2","sha":"a14226afb77b524c2ced7d649ac7420a14992716","kind":"commit","published_at":"2021-05-15T16:01:23.000Z","download_url":"https://codeload.github.com/python-websockets/websockets/tar.gz/9.0.2","html_url":"https://github.com/python-websockets/websockets/releases/tag/9.0.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-websockets/websockets@9.0.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/9.0.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/9.0.2/manifests"},{"name":"9.0.1","sha":"fc176f462b6a5ef4f470df415780b09fed5da7c1","kind":"commit","published_at":"2021-05-02T18:49:05.000Z","download_url":"https://codeload.github.com/python-websockets/websockets/tar.gz/9.0.1","html_url":"https://github.com/python-websockets/websockets/releases/tag/9.0.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-websockets/websockets@9.0.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/9.0.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/9.0.1/manifests"},{"name":"9.0","sha":"5ab214b00f38cae3976fce5a315fbfa30762b60d","kind":"commit","published_at":"2021-05-01T20:51:32.000Z","download_url":"https://codeload.github.com/python-websockets/websockets/tar.gz/9.0","html_url":"https://github.com/python-websockets/websockets/releases/tag/9.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-websockets/websockets@9.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/9.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/9.0/manifests"},{"name":"8.1","sha":"139085fe2624192a5a6c72b1e5db211dcec6ced1","kind":"commit","published_at":"2019-11-01T13:39:33.000Z","download_url":"https://codeload.github.com/python-websockets/websockets/tar.gz/8.1","html_url":"https://github.com/python-websockets/websockets/releases/tag/8.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-websockets/websockets@8.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/8.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/8.1/manifests"},{"name":"8.0.2","sha":"e8deaf9a93302c291eb8c05456a5bf90e94d7b63","kind":"commit","published_at":"2019-07-31T19:14:25.000Z","download_url":"https://codeload.github.com/python-websockets/websockets/tar.gz/8.0.2","html_url":"https://github.com/python-websockets/websockets/releases/tag/8.0.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-websockets/websockets@8.0.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/8.0.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/8.0.2/manifests"},{"name":"8.0.1","sha":"5d059da31f0d967ddf300a15f03fd00a92c8712f","kind":"commit","published_at":"2019-07-21T05:38:10.000Z","download_url":"https://codeload.github.com/python-websockets/websockets/tar.gz/8.0.1","html_url":"https://github.com/python-websockets/websockets/releases/tag/8.0.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-websockets/websockets@8.0.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/8.0.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/8.0.1/manifests"},{"name":"8.0","sha":"02af45351df41603c2767b004b29ab158337a667","kind":"commit","published_at":"2019-07-07T18:06:27.000Z","download_url":"https://codeload.github.com/python-websockets/websockets/tar.gz/8.0","html_url":"https://github.com/python-websockets/websockets/releases/tag/8.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-websockets/websockets@8.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/8.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/8.0/manifests"},{"name":"7.0","sha":"1138974fc7dd003d6626faf0b5f3a13f3a44c13d","kind":"commit","published_at":"2018-11-01T14:57:01.000Z","download_url":"https://codeload.github.com/python-websockets/websockets/tar.gz/7.0","html_url":"https://github.com/python-websockets/websockets/releases/tag/7.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-websockets/websockets@7.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/7.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/7.0/manifests"},{"name":"6.0","sha":"67ba5335f828ff446ac0e7cab7a9b45ed2513724","kind":"commit","published_at":"2018-07-16T19:50:15.000Z","download_url":"https://codeload.github.com/python-websockets/websockets/tar.gz/6.0","html_url":"https://github.com/python-websockets/websockets/releases/tag/6.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-websockets/websockets@6.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/6.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/6.0/manifests"},{"name":"5.0.1","sha":"458169b1c8ce692633d9bf90e8474c249936d49d","kind":"commit","published_at":"2018-05-24T11:16:36.000Z","download_url":"https://codeload.github.com/python-websockets/websockets/tar.gz/5.0.1","html_url":"https://github.com/python-websockets/websockets/releases/tag/5.0.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-websockets/websockets@5.0.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/5.0.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/5.0.1/manifests"},{"name":"5.0","sha":"c08a3186b750be3fdfbe40c7f92b45e026e563e6","kind":"commit","published_at":"2018-05-22T05:19:55.000Z","download_url":"https://codeload.github.com/python-websockets/websockets/tar.gz/5.0","html_url":"https://github.com/python-websockets/websockets/releases/tag/5.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-websockets/websockets@5.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/5.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/5.0/manifests"},{"name":"4.0.1","sha":"a6211d48c57a0886ee1eefa87651c99bd08d4fd2","kind":"commit","published_at":"2017-11-02T20:14:59.000Z","download_url":"https://codeload.github.com/python-websockets/websockets/tar.gz/4.0.1","html_url":"https://github.com/python-websockets/websockets/releases/tag/4.0.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-websockets/websockets@4.0.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/4.0.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/4.0.1/manifests"},{"name":"4.0","sha":"93c7bc1446f1f9e99b0919dceacf84fd92832811","kind":"commit","published_at":"2017-11-02T06:50:44.000Z","download_url":"https://codeload.github.com/python-websockets/websockets/tar.gz/4.0","html_url":"https://github.com/python-websockets/websockets/releases/tag/4.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-websockets/websockets@4.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/4.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/4.0/manifests"},{"name":"3.4","sha":"e812f02d30d930eb802e0439a397431880bad5f1","kind":"commit","published_at":"2017-08-20T11:58:20.000Z","download_url":"https://codeload.github.com/python-websockets/websockets/tar.gz/3.4","html_url":"https://github.com/python-websockets/websockets/releases/tag/3.4","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-websockets/websockets@3.4","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/3.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/3.4/manifests"},{"name":"3.3","sha":"c46ab352f6046522b4ac096418367bbd12d76ae6","kind":"commit","published_at":"2017-03-29T13:47:49.000Z","download_url":"https://codeload.github.com/python-websockets/websockets/tar.gz/3.3","html_url":"https://github.com/python-websockets/websockets/releases/tag/3.3","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-websockets/websockets@3.3","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/3.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/3.3/manifests"},{"name":"3.2","sha":"6e728f0357db864f5d1f6495ca9ab27c47c636af","kind":"commit","published_at":"2016-08-17T21:22:45.000Z","download_url":"https://codeload.github.com/python-websockets/websockets/tar.gz/3.2","html_url":"https://github.com/python-websockets/websockets/releases/tag/3.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-websockets/websockets@3.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/3.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/3.2/manifests"},{"name":"3.1","sha":"817a14fd3b85c0bdc4449bfe792098eaa2a45bfe","kind":"commit","published_at":"2016-04-21T20:20:10.000Z","download_url":"https://codeload.github.com/python-websockets/websockets/tar.gz/3.1","html_url":"https://github.com/python-websockets/websockets/releases/tag/3.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-websockets/websockets@3.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/3.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/3.1/manifests"},{"name":"3.0","sha":"7d7cac390637021ab9944dc7028a7b2e8f84983f","kind":"commit","published_at":"2015-12-25T11:12:35.000Z","download_url":"https://codeload.github.com/python-websockets/websockets/tar.gz/3.0","html_url":"https://github.com/python-websockets/websockets/releases/tag/3.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-websockets/websockets@3.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/3.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/3.0/manifests"},{"name":"2.7","sha":"2bd32e949e397f6c82d7de5d45363889bae65b9d","kind":"commit","published_at":"2015-11-18T19:52:09.000Z","download_url":"https://codeload.github.com/python-websockets/websockets/tar.gz/2.7","html_url":"https://github.com/python-websockets/websockets/releases/tag/2.7","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-websockets/websockets@2.7","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/2.7","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/2.7/manifests"},{"name":"2.6","sha":"72f9b68b87395bdf598411398d07917b043dfc41","kind":"commit","published_at":"2015-08-18T18:13:37.000Z","download_url":"https://codeload.github.com/python-websockets/websockets/tar.gz/2.6","html_url":"https://github.com/python-websockets/websockets/releases/tag/2.6","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-websockets/websockets@2.6","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/2.6","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/2.6/manifests"},{"name":"2.5","sha":"0c43316b07e93bddb3a688a104713f8a91dfaff5","kind":"commit","published_at":"2015-07-28T20:41:01.000Z","download_url":"https://codeload.github.com/python-websockets/websockets/tar.gz/2.5","html_url":"https://github.com/python-websockets/websockets/releases/tag/2.5","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-websockets/websockets@2.5","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/2.5","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/2.5/manifests"},{"name":"2.4","sha":"9b81b7e5da8cc37cd7644ad58ac9648070703fe8","kind":"commit","published_at":"2015-01-31T20:10:50.000Z","download_url":"https://codeload.github.com/python-websockets/websockets/tar.gz/2.4","html_url":"https://github.com/python-websockets/websockets/releases/tag/2.4","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-websockets/websockets@2.4","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/2.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/2.4/manifests"},{"name":"2.3","sha":"67fa773d72b6b3888e86ae65f3d4f89ceb705198","kind":"commit","published_at":"2014-11-03T22:05:09.000Z","download_url":"https://codeload.github.com/python-websockets/websockets/tar.gz/2.3","html_url":"https://github.com/python-websockets/websockets/releases/tag/2.3","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-websockets/websockets@2.3","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/2.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/2.3/manifests"},{"name":"2.2","sha":"7e4ef005696a956def34fa735422ca4e1ef17197","kind":"commit","published_at":"2014-07-28T09:14:48.000Z","download_url":"https://codeload.github.com/python-websockets/websockets/tar.gz/2.2","html_url":"https://github.com/python-websockets/websockets/releases/tag/2.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-websockets/websockets@2.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/2.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/2.2/manifests"},{"name":"2.1","sha":"481986fd209c5d0667195390b5f1f56f2ee899a7","kind":"commit","published_at":"2014-04-26T13:47:49.000Z","download_url":"https://codeload.github.com/python-websockets/websockets/tar.gz/2.1","html_url":"https://github.com/python-websockets/websockets/releases/tag/2.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-websockets/websockets@2.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/2.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/2.1/manifests"},{"name":"2.0","sha":"d03ba5669bd386f8e873a620ff6a5a6926b340b4","kind":"commit","published_at":"2014-02-16T18:38:18.000Z","download_url":"https://codeload.github.com/python-websockets/websockets/tar.gz/2.0","html_url":"https://github.com/python-websockets/websockets/releases/tag/2.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-websockets/websockets@2.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/2.0/manifests"},{"name":"1.0","sha":"1aa31d0545c877aea22d3b4452a4b92dbd631306","kind":"commit","published_at":"2013-11-14T16:29:15.000Z","download_url":"https://codeload.github.com/python-websockets/websockets/tar.gz/1.0","html_url":"https://github.com/python-websockets/websockets/releases/tag/1.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-websockets/websockets@1.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/1.0/manifests"}]},"repo_metadata_updated_at":"2026-08-22T14:57:20.424Z","dependent_packages_count":1447,"downloads":585336844,"downloads_period":"last-month","dependent_repos_count":29748,"rankings":{"downloads":0.04695464291544313,"dependent_repos_count":0.040718479403235835,"dependent_packages_count":0.023110488309944666,"stargazers_count":1.4594456784303944,"forks_count":3.001428815110591,"docker_downloads_count":0.04823855893266227,"average":0.7699827771837118},"purl":"pkg:pypi/websockets","advisories":[{"uuid":"MDE2OlNlY3VyaXR5QWR2aXNvcnlHSFNBLThjaDQtNThxcC1nM21w","url":"https://github.com/advisories/GHSA-8ch4-58qp-g3mp","title":"Observable Timing Discrepancy in aaugustin websockets library","description":"The aaugustin websockets library before 9.1 for Python has an Observable Timing Discrepancy on servers when HTTP Basic Authentication is enabled with basic_auth_protocol_factory(credentials=...). An attacker may be able to guess a password via a timing attack.","origin":"UNSPECIFIED","severity":"HIGH","published_at":"2021-06-11T17:43:14.000Z","withdrawn_at":null,"classification":"GENERAL","cvss_score":8.2,"cvss_vector":"CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N","references":["https://nvd.nist.gov/vuln/detail/CVE-2021-33880","https://github.com/aaugustin/websockets/commit/547a26b685d08cac0aa64e5e65f7867ac0ea9bc0","https://www.oracle.com/security-alerts/cpujan2022.html","https://www.oracle.com/security-alerts/cpuapr2022.html","https://github.com/pypa/advisory-database/tree/main/vulns/websockets/PYSEC-2021-95.yaml","https://github.com/advisories/GHSA-8ch4-58qp-g3mp"],"source_kind":"github","identifiers":["GHSA-8ch4-58qp-g3mp","CVE-2021-33880"],"repository_url":"https://github.com/aaugustin/websockets","blast_radius":36.68235373708666,"created_at":"2022-12-21T16:12:59.639Z","updated_at":"2026-08-19T22:12:45.229Z","epss_percentage":0.02265,"epss_percentile":0.8152,"api_url":"https://advisories.ecosyste.ms/api/v1/advisories/MDE2OlNlY3VyaXR5QWR2aXNvcnlHSFNBLThjaDQtNThxcC1nM21w","html_url":"https://advisories.ecosyste.ms/advisories/MDE2OlNlY3VyaXR5QWR2aXNvcnlHSFNBLThjaDQtNThxcC1nM21w","packages":[{"ecosystem":"pypi","package_name":"websockets","versions":[{"first_patched_version":"9.1","vulnerable_version_range":"\u003c 9.1"}],"purl":"pkg:pypi/websockets"}],"related_packages_url":"https://advisories.ecosyste.ms/api/v1/advisories/MDE2OlNlY3VyaXR5QWR2aXNvcnlHSFNBLThjaDQtNThxcC1nM21w/related_packages","related_advisories":[]},{"uuid":"MDE2OlNlY3VyaXR5QWR2aXNvcnlHSFNBLTZnODctZmY5cS12ODQ3","url":"https://github.com/advisories/GHSA-6g87-ff9q-v847","title":"websockets is vulnerable to denial of service by memory exhaustion","description":"The Python websockets library version 4 contains a CWE-409: Improper Handling of Highly Compressed Data (Data Amplification) vulnerability in Servers and clients, unless configured with compression=None that can result in Denial of Service by memory exhaustion. This attack appears to be exploitable via sending a specially crafted frame on an established connection. This vulnerability appears to have been fixed in version 5.0","origin":"UNSPECIFIED","severity":"HIGH","published_at":"2018-09-17T20:46:52.000Z","withdrawn_at":null,"classification":"GENERAL","cvss_score":8.7,"cvss_vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N","references":["https://nvd.nist.gov/vuln/detail/CVE-2018-1000518","https://github.com/aaugustin/websockets/pull/407","https://github.com/pypa/advisory-database/tree/main/vulns/websockets/PYSEC-2018-79.yaml","https://github.com/advisories/GHSA-6g87-ff9q-v847"],"source_kind":"github","identifiers":["GHSA-6g87-ff9q-v847","CVE-2018-1000518"],"repository_url":"https://github.com/aaugustin/websockets","blast_radius":38.919082623494376,"created_at":"2022-12-21T16:13:36.219Z","updated_at":"2026-08-15T20:16:55.256Z","epss_percentage":0.01818,"epss_percentile":0.7651,"api_url":"https://advisories.ecosyste.ms/api/v1/advisories/MDE2OlNlY3VyaXR5QWR2aXNvcnlHSFNBLTZnODctZmY5cS12ODQ3","html_url":"https://advisories.ecosyste.ms/advisories/MDE2OlNlY3VyaXR5QWR2aXNvcnlHSFNBLTZnODctZmY5cS12ODQ3","packages":[{"ecosystem":"pypi","package_name":"websockets","versions":[{"first_patched_version":"5.0","vulnerable_version_range":"\u003e= 4.0, \u003c 5.0"}],"purl":"pkg:pypi/websockets"}],"related_packages_url":"https://advisories.ecosyste.ms/api/v1/advisories/MDE2OlNlY3VyaXR5QWR2aXNvcnlHSFNBLTZnODctZmY5cS12ODQ3/related_packages","related_advisories":[]}],"docker_usage_url":"https://docker.ecosyste.ms/usage/pypi/websockets","docker_dependents_count":3583,"docker_downloads_count":1276158704,"usage_url":"https://repos.ecosyste.ms/usage/pypi/websockets","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/pypi/websockets/dependencies","status":null,"funding_links":["https://tidelift.com/subscription/pkg/pypi-websockets?utm_source=pypi-websockets\u0026utm_medium=referral\u0026utm_campaign=readme","https://github.com/sponsors/python-websockets","https://opencollective.com/websockets","https://tidelift.com/funding/github/pypi/websockets"],"critical":true,"issue_metadata":{"last_synced_at":"2026-08-22T11:31:34.413Z","issues_count":309,"pull_requests_count":275,"avg_time_to_close_issue":13075627.309859155,"avg_time_to_close_pull_request":5649800.532520325,"issues_closed_count":284,"pull_requests_closed_count":246,"pull_request_authors_count":71,"issue_authors_count":247,"avg_comments_per_issue":4.067961165048544,"avg_comments_per_pull_request":1.52,"merged_pull_requests_count":153,"bot_issues_count":0,"bot_pull_requests_count":65,"past_year_issues_count":32,"past_year_pull_requests_count":61,"past_year_avg_time_to_close_issue":4172904.0714285714,"past_year_avg_time_to_close_pull_request":1766259.6851851852,"past_year_issues_closed_count":28,"past_year_pull_requests_closed_count":54,"past_year_pull_request_authors_count":22,"past_year_issue_authors_count":32,"past_year_avg_comments_per_issue":4.0625,"past_year_avg_comments_per_pull_request":1.0,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":21,"past_year_merged_pull_requests_count":36,"issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/issues","maintainers":[{"login":"aaugustin","count":141,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/aaugustin"},{"login":"cjerdonek","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/cjerdonek"}],"active_maintainers":[{"login":"aaugustin","count":17,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/aaugustin"}]},"versions_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/websockets/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/websockets/version_numbers","latest_version_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/websockets/latest_version","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/websockets/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/websockets/related_packages","codemeta_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/websockets/codemeta","maintainers":[{"uuid":"aaugustin","login":"aaugustin","name":null,"email":null,"url":null,"packages_count":14,"html_url":"https://pypi.org/user/aaugustin/","role":null,"created_at":"2023-01-30T17:58:16.119Z","updated_at":"2023-01-30T17:58:16.119Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/maintainers/aaugustin/packages"}],"registry":{"name":"pypi.org","url":"https://pypi.org","ecosystem":"pypi","default":true,"packages_count":930432,"maintainers_count":399682,"namespaces_count":0,"keywords_count":311773,"github":"pypi","metadata":{"funded_packages_count":58574,"rate_limit":2},"icon_url":"https://github.com/pypi.png","created_at":"2022-04-04T15:19:23.364Z","updated_at":"2026-08-24T05:05:47.334Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages","maintainers_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/maintainers","namespaces_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/namespaces"}},{"id":14953996,"name":"github.com/python-websockets/websockets","ecosystem":"go","description":null,"homepage":null,"licenses":"bsd-3-clause","normalized_licenses":[],"repository_url":"https://github.com/python-websockets/websockets","keywords_array":[],"namespace":null,"versions_count":1,"first_release_published_at":"2026-08-10T19:18:45.000Z","latest_release_published_at":"2026-08-10T19:18:45.000Z","latest_release_number":"v0.0.0-20260810191845-f6f7eda46fd0","last_synced_at":"2026-08-23T12:05:05.052Z","created_at":"2026-08-14T10:20:10.754Z","updated_at":"2026-08-23T12:05:05.052Z","registry_url":"https://pkg.go.dev/github.com/python-websockets/websockets","install_command":"go get github.com/python-websockets/websockets","documentation_url":"https://pkg.go.dev/github.com/python-websockets/websockets#section-documentation","metadata":{},"repo_metadata":{"id":7746372,"uuid":"9113587","full_name":"python-websockets/websockets","owner":"python-websockets","description":"Library for building WebSocket servers and clients in Python","archived":false,"fork":false,"pushed_at":"2026-07-31T10:40:13.000Z","size":4444,"stargazers_count":5708,"open_issues_count":0,"forks_count":603,"subscribers_count":107,"default_branch":"main","last_synced_at":"2026-08-08T09:52:59.210Z","etag":null,"topics":["python","python3","websocket","websocket-client","websocket-library","websocket-server","websockets"],"latest_commit_sha":null,"homepage":"https://websockets.readthedocs.io/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/python-websockets.png","metadata":{"files":{"readme":"README.rst","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"claude":null,"gemini":null,"cursor":null,"copilot":null,"dco":null,"cla":null,"disclosure":null},"funding":{"github":"python-websockets","open_collective":"websockets","tidelift":"pypi/websockets"}},"created_at":"2013-03-30T08:59:30.000Z","updated_at":"2026-08-07T11:04:52.000Z","dependencies_parsed_at":"2026-08-08T04:49:02.597Z","dependency_job_id":null,"html_url":"https://github.com/python-websockets/websockets","commit_stats":{"total_commits":1510,"total_committers":76,"mean_commits":19.86842105263158,"dds":"0.22980132450331126","last_synced_commit":"76f6f573e2ecb279230c2bf56c07bf4d4f717147"},"previous_names":["aaugustin/websockets"],"tags_count":51,"template":false,"template_full_name":null,"purl":"pkg:github/python-websockets/websockets","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/python-websockets","download_url":"https://codeload.github.com/python-websockets/websockets/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/sbom","scorecard":{"id":159660,"data":{"date":"2025-08-04","repo":{"name":"github.com/python-websockets/websockets","commit":"5c809b0ae3641605c86e9f0d66136168b0d8bdd2"},"scorecard":{"version":"v5.2.1-28-gc1d103a9","commit":"c1d103a9bb9f635ec7260bf9aa0699466fa4be0e"},"score":5.1,"checks":[{"name":"Maintained","score":10,"reason":"12 commit(s) and 19 issue activity found in the last 90 days -- score normalized to 10","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#maintained"}},{"name":"Code-Review","score":1,"reason":"Found 4/27 approved changesets -- score normalized to 1","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#code-review"}},{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: jobLevel 'contents' permission set to 'write': .github/workflows/release.yml:76","Warn: no topLevel permission defined: .github/workflows/release.yml:1","Warn: no topLevel permission defined: .github/workflows/tests.yml:1"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#token-permissions"}},{"name":"Security-Policy","score":10,"reason":"security policy file detected","details":["Info: security policy file detected: SECURITY.md:1","Info: Found linked content: SECURITY.md:1","Info: Found disclosure, vulnerability, and/or timelines in security policy: SECURITY.md:1","Info: Found text in security policy: SECURITY.md:1"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#security-policy"}},{"name":"Dangerous-Workflow","score":10,"reason":"no dangerous workflow patterns detected","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#dangerous-workflow"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#cii-best-practices"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#binary-artifacts"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Info: FSF or OSI recognized license: BSD 3-Clause \"New\" or \"Revised\" License: LICENSE:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#license"}},{"name":"Fuzzing","score":10,"reason":"project is fuzzed","details":["Info: PythonAtherisFuzzer integration found: fuzzing/fuzz_http11_request_parser.py:3","Info: PythonAtherisFuzzer integration found: fuzzing/fuzz_http11_response_parser.py:3","Info: PythonAtherisFuzzer integration found: fuzzing/fuzz_websocket_parser.py:3"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#fuzzing"}},{"name":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/release.yml:45: update your workflow using https://app.stepsecurity.io/secureworkflow/python-websockets/websockets/release.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/release.yml:47: update your workflow using https://app.stepsecurity.io/secureworkflow/python-websockets/websockets/release.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/release.yml:52: update your workflow using https://app.stepsecurity.io/secureworkflow/python-websockets/websockets/release.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/release.yml:56: update your workflow using https://app.stepsecurity.io/secureworkflow/python-websockets/websockets/release.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/release.yml:60: update your workflow using https://app.stepsecurity.io/secureworkflow/python-websockets/websockets/release.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/release.yml:79: update your workflow using https://app.stepsecurity.io/secureworkflow/python-websockets/websockets/release.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/release.yml:85: update your workflow using https://app.stepsecurity.io/secureworkflow/python-websockets/websockets/release.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/release.yml:89: update your workflow using https://app.stepsecurity.io/secureworkflow/python-websockets/websockets/release.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/release.yml:15: update your workflow using https://app.stepsecurity.io/secureworkflow/python-websockets/websockets/release.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/release.yml:17: update your workflow using https://app.stepsecurity.io/secureworkflow/python-websockets/websockets/release.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/release.yml:27: update your workflow using https://app.stepsecurity.io/secureworkflow/python-websockets/websockets/release.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/tests.yml:20: update your workflow using https://app.stepsecurity.io/secureworkflow/python-websockets/websockets/tests.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/tests.yml:22: update your workflow using https://app.stepsecurity.io/secureworkflow/python-websockets/websockets/tests.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/tests.yml:37: update your workflow using https://app.stepsecurity.io/secureworkflow/python-websockets/websockets/tests.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/tests.yml:39: update your workflow using https://app.stepsecurity.io/secureworkflow/python-websockets/websockets/tests.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/tests.yml:71: update your workflow using https://app.stepsecurity.io/secureworkflow/python-websockets/websockets/tests.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/tests.yml:73: update your workflow using https://app.stepsecurity.io/secureworkflow/python-websockets/websockets/tests.yml/main?enable=pin","Warn: containerImage not pinned by hash: example/deployment/kubernetes/Dockerfile:1: pin your Docker image by updating python:3.13-alpine to python:3.13-alpine@sha256:f196fd275fdad7287ccb4b0a85c2e402bb8c794d205cf6158909041c1ee9f38d","Warn: pipCommand not pinned by hash: example/deployment/kubernetes/Dockerfile:3","Warn: pipCommand not pinned by hash: .github/workflows/release.yml:22","Warn: pipCommand not pinned by hash: .github/workflows/tests.yml:27","Warn: pipCommand not pinned by hash: .github/workflows/tests.yml:44","Warn: pipCommand not pinned by hash: .github/workflows/tests.yml:79","Info:   0 out of  14 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of   3 third-party GitHubAction dependencies pinned","Info:   0 out of   1 containerImage dependencies pinned","Info:   0 out of   5 pipCommand dependencies pinned"],"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#pinned-dependencies"}},{"name":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#signed-releases"}},{"name":"Branch-Protection","score":0,"reason":"branch protection not enabled on development/release branches","details":["Warn: branch protection not enabled for branch 'main'"],"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#branch-protection"}},{"name":"Packaging","score":10,"reason":"packaging workflow detected","details":["Info: Project packages its releases by way of GitHub Actions.: .github/workflows/release.yml:65"],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#packaging"}},{"name":"Vulnerabilities","score":0,"reason":"17 existing vulnerabilities detected","details":["Warn: Project is vulnerable to: GHSA-2g68-c3qc-8985","Warn: Project is vulnerable to: PYSEC-2020-157 / GHSA-3p3h-qghp-hvh2","Warn: Project is vulnerable to: GHSA-f9vj-2wh5-fj8j","Warn: Project is vulnerable to: PYSEC-2019-140 / GHSA-gq9m-qvpx-68hc","Warn: Project is vulnerable to: PYSEC-2017-43 / GHSA-h2fp-xgx6-xh6f","Warn: Project is vulnerable to: PYSEC-2023-221 / GHSA-hrfv-mqp8-q5rw","Warn: Project is vulnerable to: GHSA-j544-7q9p-6xp8","Warn: Project is vulnerable to: PYSEC-2023-57 / GHSA-px8h-6qxv-m22q","Warn: Project is vulnerable to: GHSA-q34m-jh98-gwm2","Warn: Project is vulnerable to: PYSEC-2023-58 / GHSA-xg9f-g7g7-2323","Warn: Project is vulnerable to: PYSEC-2022-203","Warn: Project is vulnerable to: PYSEC-2021-95 / GHSA-8ch4-58qp-g3mp","Warn: Project is vulnerable to: PYSEC-2018-79","Warn: Project is vulnerable to: PYSEC-2021-328 / GHSA-22gh-3r9q-xf38","Warn: Project is vulnerable to: PYSEC-2018-56 / GHSA-6m53-c78q-7qmg","Warn: Project is vulnerable to: PYSEC-2022-170 / GHSA-gcx2-gvj7-pxv3","Warn: Project is vulnerable to: GHSA-wg33-5h85-7q5p"],"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#vulnerabilities"}},{"name":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 12 are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#sast"}}]},"last_synced_at":"2025-08-16T12:58:49.354Z","repository_id":7746372,"created_at":"2025-08-16T12:58:49.354Z","updated_at":"2025-08-16T12:58:49.354Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":36413472,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-08-06T04:43:03.162Z","status":"online","status_checked_at":"2026-08-08T02:00:08.763Z","response_time":96,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"},"owner_record":{"login":"python-websockets","name":"python-websockets","uuid":"130129149","kind":"organization","description":null,"email":null,"website":null,"location":null,"twitter":null,"company":null,"icon_url":"https://avatars.githubusercontent.com/u/130129149?v=4","repositories_count":1,"last_synced_at":"2023-04-09T06:52:51.862Z","metadata":{"has_sponsors_listing":false},"html_url":"https://github.com/python-websockets","funding_links":[],"total_stars":null,"followers":null,"following":null,"created_at":"2023-04-09T06:52:51.880Z","updated_at":"2023-04-09T06:52:51.880Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/python-websockets","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/python-websockets/repositories"},"tags":[{"name":"17.0.1","sha":"fd3f16cc4f57ace08e323a7806f1432e957cb75e","kind":"commit","published_at":"2026-07-31T10:23:33.000Z","download_url":"https://codeload.github.com/python-websockets/websockets/tar.gz/17.0.1","html_url":"https://github.com/python-websockets/websockets/releases/tag/17.0.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-websockets/websockets@17.0.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/17.0.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/17.0.1/manifests"},{"name":"17.0","sha":"5b395c5bddfb7599bd2b52b7b108f6999c294651","kind":"commit","published_at":"2026-07-29T17:10:56.000Z","download_url":"https://codeload.github.com/python-websockets/websockets/tar.gz/17.0","html_url":"https://github.com/python-websockets/websockets/releases/tag/17.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-websockets/websockets@17.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/17.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/17.0/manifests"},{"name":"16.1.1","sha":"01df1e4e4d482cc70dfcd4a13c7bac1e956d4b9a","kind":"commit","published_at":"2026-07-17T21:53:48.000Z","download_url":"https://codeload.github.com/python-websockets/websockets/tar.gz/16.1.1","html_url":"https://github.com/python-websockets/websockets/releases/tag/16.1.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-websockets/websockets@16.1.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/16.1.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/16.1.1/manifests"},{"name":"16.1","sha":"4df6f90d0724640275157a0fa784c234d309af82","kind":"commit","published_at":"2026-07-09T07:38:41.000Z","download_url":"https://codeload.github.com/python-websockets/websockets/tar.gz/16.1","html_url":"https://github.com/python-websockets/websockets/releases/tag/16.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-websockets/websockets@16.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/16.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/16.1/manifests"},{"name":"16.0","sha":"d4303a5d3e373fc8c34177c3dec1a9c75c8865fa","kind":"commit","published_at":"2026-01-10T09:08:08.000Z","download_url":"https://codeload.github.com/python-websockets/websockets/tar.gz/16.0","html_url":"https://github.com/python-websockets/websockets/releases/tag/16.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-websockets/websockets@16.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/16.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/16.0/manifests"},{"name":"15.0.1","sha":"37c9bc0781f0cc5af7c729947ef1833c1e12b70d","kind":"commit","published_at":"2025-03-05T19:42:59.000Z","download_url":"https://codeload.github.com/python-websockets/websockets/tar.gz/15.0.1","html_url":"https://github.com/python-websockets/websockets/releases/tag/15.0.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-websockets/websockets@15.0.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/15.0.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/15.0.1/manifests"},{"name":"15.0","sha":"7ac73c645329055a3c352077b8055e6ed65fa46c","kind":"commit","published_at":"2025-02-16T10:47:18.000Z","download_url":"https://codeload.github.com/python-websockets/websockets/tar.gz/15.0","html_url":"https://github.com/python-websockets/websockets/releases/tag/15.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-websockets/websockets@15.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/15.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/15.0/manifests"},{"name":"14.2","sha":"624a36cc9c1ea1369971387d7bb23533b2797350","kind":"commit","published_at":"2025-01-19T20:42:16.000Z","download_url":"https://codeload.github.com/python-websockets/websockets/tar.gz/14.2","html_url":"https://github.com/python-websockets/websockets/releases/tag/14.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-websockets/websockets@14.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/14.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/14.2/manifests"},{"name":"14.1","sha":"0403823185b272ae389da1c9182773932b4df950","kind":"commit","published_at":"2024-11-13T06:53:45.000Z","download_url":"https://codeload.github.com/python-websockets/websockets/tar.gz/14.1","html_url":"https://github.com/python-websockets/websockets/releases/tag/14.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-websockets/websockets@14.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/14.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/14.1/manifests"},{"name":"14.0","sha":"f0d20aafab027e9b99460b193dcb709872b219a5","kind":"commit","published_at":"2024-11-09T12:58:10.000Z","download_url":"https://codeload.github.com/python-websockets/websockets/tar.gz/14.0","html_url":"https://github.com/python-websockets/websockets/releases/tag/14.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-websockets/websockets@14.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/14.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/14.0/manifests"},{"name":"13.1","sha":"4d229bf9f583d593aa103287aee0a77c9fbc3a79","kind":"commit","published_at":"2024-09-21T17:13:12.000Z","download_url":"https://codeload.github.com/python-websockets/websockets/tar.gz/13.1","html_url":"https://github.com/python-websockets/websockets/releases/tag/13.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-websockets/websockets@13.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/13.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/13.1/manifests"},{"name":"13.0.1","sha":"157f7908c33cb540f7cf76568dde8aa6cf400504","kind":"commit","published_at":"2024-08-28T20:22:02.000Z","download_url":"https://codeload.github.com/python-websockets/websockets/tar.gz/13.0.1","html_url":"https://github.com/python-websockets/websockets/releases/tag/13.0.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-websockets/websockets@13.0.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/13.0.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/13.0.1/manifests"},{"name":"13.0","sha":"323adef1f3000cf07617d7ee649c27c0801126e6","kind":"commit","published_at":"2024-08-20T13:19:28.000Z","download_url":"https://codeload.github.com/python-websockets/websockets/tar.gz/13.0","html_url":"https://github.com/python-websockets/websockets/releases/tag/13.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-websockets/websockets@13.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/13.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/13.0/manifests"},{"name":"12.0","sha":"01195322d2620a44039b716cb93c108c2ca9b6b9","kind":"commit","published_at":"2023-10-21T13:52:23.000Z","download_url":"https://codeload.github.com/python-websockets/websockets/tar.gz/12.0","html_url":"https://github.com/python-websockets/websockets/releases/tag/12.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-websockets/websockets@12.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/12.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/12.0/manifests"},{"name":"11.0.3","sha":"bf858ac9a6e047c50614d6990a12345e1f38802c","kind":"commit","published_at":"2023-05-07T13:44:46.000Z","download_url":"https://codeload.github.com/python-websockets/websockets/tar.gz/11.0.3","html_url":"https://github.com/python-websockets/websockets/releases/tag/11.0.3","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-websockets/websockets@11.0.3","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/11.0.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/11.0.3/manifests"},{"name":"11.0.2","sha":"0ce16b23808a154829acf2ec786f1e67c1bd4cdf","kind":"commit","published_at":"2023-04-18T05:21:11.000Z","download_url":"https://codeload.github.com/python-websockets/websockets/tar.gz/11.0.2","html_url":"https://github.com/python-websockets/websockets/releases/tag/11.0.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-websockets/websockets@11.0.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/11.0.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/11.0.2/manifests"},{"name":"11.0.1","sha":"f55c1411a780d2829f095d426707860b90ff3c0c","kind":"commit","published_at":"2023-04-06T05:09:40.000Z","download_url":"https://codeload.github.com/python-websockets/websockets/tar.gz/11.0.1","html_url":"https://github.com/python-websockets/websockets/releases/tag/11.0.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-websockets/websockets@11.0.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/11.0.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/11.0.1/manifests"},{"name":"11.0","sha":"f516cf51e166ec0cc797fa6bb68b559e4c1fed8b","kind":"commit","published_at":"2023-04-02T08:07:51.000Z","download_url":"https://codeload.github.com/python-websockets/websockets/tar.gz/11.0","html_url":"https://github.com/python-websockets/websockets/releases/tag/11.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-websockets/websockets@11.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/11.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/11.0/manifests"},{"name":"10.4","sha":"d8c17625857797db029110d74417ae5f840aeb75","kind":"commit","published_at":"2022-10-25T19:48:44.000Z","download_url":"https://codeload.github.com/python-websockets/websockets/tar.gz/10.4","html_url":"https://github.com/python-websockets/websockets/releases/tag/10.4","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-websockets/websockets@10.4","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/10.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/10.4/manifests"},{"name":"10.3","sha":"0d9a251a338f549b91e13cc346b0f73fd5964493","kind":"commit","published_at":"2022-04-17T14:12:42.000Z","download_url":"https://codeload.github.com/python-websockets/websockets/tar.gz/10.3","html_url":"https://github.com/python-websockets/websockets/releases/tag/10.3","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-websockets/websockets@10.3","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/10.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/10.3/manifests"},{"name":"10.2","sha":"498cc8c061e53f0001cb2e3ade22ee8ce5ff11a1","kind":"commit","published_at":"2022-02-21T06:41:08.000Z","download_url":"https://codeload.github.com/python-websockets/websockets/tar.gz/10.2","html_url":"https://github.com/python-websockets/websockets/releases/tag/10.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-websockets/websockets@10.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/10.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/10.2/manifests"},{"name":"10.1","sha":"5f63545517270cd3218c2ed19df190f5ce88f795","kind":"commit","published_at":"2021-11-14T19:53:17.000Z","download_url":"https://codeload.github.com/python-websockets/websockets/tar.gz/10.1","html_url":"https://github.com/python-websockets/websockets/releases/tag/10.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-websockets/websockets@10.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/10.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/10.1/manifests"},{"name":"10.0","sha":"13eff12bb4c995b50154fdc250281c92ddccaca0","kind":"commit","published_at":"2021-09-09T05:55:31.000Z","download_url":"https://codeload.github.com/python-websockets/websockets/tar.gz/10.0","html_url":"https://github.com/python-websockets/websockets/releases/tag/10.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-websockets/websockets@10.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/10.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/10.0/manifests"},{"name":"9.1","sha":"d0f328888f3e695aa64d78dcf48af4ece219221b","kind":"commit","published_at":"2021-05-27T11:37:45.000Z","download_url":"https://codeload.github.com/python-websockets/websockets/tar.gz/9.1","html_url":"https://github.com/python-websockets/websockets/releases/tag/9.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-websockets/websockets@9.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/9.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/9.1/manifests"},{"name":"9.0.2","sha":"a14226afb77b524c2ced7d649ac7420a14992716","kind":"commit","published_at":"2021-05-15T16:01:23.000Z","download_url":"https://codeload.github.com/python-websockets/websockets/tar.gz/9.0.2","html_url":"https://github.com/python-websockets/websockets/releases/tag/9.0.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-websockets/websockets@9.0.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/9.0.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/9.0.2/manifests"},{"name":"9.0.1","sha":"fc176f462b6a5ef4f470df415780b09fed5da7c1","kind":"commit","published_at":"2021-05-02T18:49:05.000Z","download_url":"https://codeload.github.com/python-websockets/websockets/tar.gz/9.0.1","html_url":"https://github.com/python-websockets/websockets/releases/tag/9.0.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-websockets/websockets@9.0.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/9.0.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/9.0.1/manifests"},{"name":"9.0","sha":"5ab214b00f38cae3976fce5a315fbfa30762b60d","kind":"commit","published_at":"2021-05-01T20:51:32.000Z","download_url":"https://codeload.github.com/python-websockets/websockets/tar.gz/9.0","html_url":"https://github.com/python-websockets/websockets/releases/tag/9.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-websockets/websockets@9.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/9.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/9.0/manifests"},{"name":"8.1","sha":"139085fe2624192a5a6c72b1e5db211dcec6ced1","kind":"commit","published_at":"2019-11-01T13:39:33.000Z","download_url":"https://codeload.github.com/python-websockets/websockets/tar.gz/8.1","html_url":"https://github.com/python-websockets/websockets/releases/tag/8.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-websockets/websockets@8.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/8.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/8.1/manifests"},{"name":"8.0.2","sha":"e8deaf9a93302c291eb8c05456a5bf90e94d7b63","kind":"commit","published_at":"2019-07-31T19:14:25.000Z","download_url":"https://codeload.github.com/python-websockets/websockets/tar.gz/8.0.2","html_url":"https://github.com/python-websockets/websockets/releases/tag/8.0.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-websockets/websockets@8.0.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/8.0.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/8.0.2/manifests"},{"name":"8.0.1","sha":"5d059da31f0d967ddf300a15f03fd00a92c8712f","kind":"commit","published_at":"2019-07-21T05:38:10.000Z","download_url":"https://codeload.github.com/python-websockets/websockets/tar.gz/8.0.1","html_url":"https://github.com/python-websockets/websockets/releases/tag/8.0.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-websockets/websockets@8.0.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/8.0.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/8.0.1/manifests"},{"name":"8.0","sha":"02af45351df41603c2767b004b29ab158337a667","kind":"commit","published_at":"2019-07-07T18:06:27.000Z","download_url":"https://codeload.github.com/python-websockets/websockets/tar.gz/8.0","html_url":"https://github.com/python-websockets/websockets/releases/tag/8.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-websockets/websockets@8.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/8.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/8.0/manifests"},{"name":"7.0","sha":"1138974fc7dd003d6626faf0b5f3a13f3a44c13d","kind":"commit","published_at":"2018-11-01T14:57:01.000Z","download_url":"https://codeload.github.com/python-websockets/websockets/tar.gz/7.0","html_url":"https://github.com/python-websockets/websockets/releases/tag/7.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-websockets/websockets@7.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/7.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/7.0/manifests"},{"name":"6.0","sha":"67ba5335f828ff446ac0e7cab7a9b45ed2513724","kind":"commit","published_at":"2018-07-16T19:50:15.000Z","download_url":"https://codeload.github.com/python-websockets/websockets/tar.gz/6.0","html_url":"https://github.com/python-websockets/websockets/releases/tag/6.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-websockets/websockets@6.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/6.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/6.0/manifests"},{"name":"5.0.1","sha":"458169b1c8ce692633d9bf90e8474c249936d49d","kind":"commit","published_at":"2018-05-24T11:16:36.000Z","download_url":"https://codeload.github.com/python-websockets/websockets/tar.gz/5.0.1","html_url":"https://github.com/python-websockets/websockets/releases/tag/5.0.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-websockets/websockets@5.0.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/5.0.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/5.0.1/manifests"},{"name":"5.0","sha":"c08a3186b750be3fdfbe40c7f92b45e026e563e6","kind":"commit","published_at":"2018-05-22T05:19:55.000Z","download_url":"https://codeload.github.com/python-websockets/websockets/tar.gz/5.0","html_url":"https://github.com/python-websockets/websockets/releases/tag/5.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-websockets/websockets@5.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/5.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/5.0/manifests"},{"name":"4.0.1","sha":"a6211d48c57a0886ee1eefa87651c99bd08d4fd2","kind":"commit","published_at":"2017-11-02T20:14:59.000Z","download_url":"https://codeload.github.com/python-websockets/websockets/tar.gz/4.0.1","html_url":"https://github.com/python-websockets/websockets/releases/tag/4.0.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-websockets/websockets@4.0.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/4.0.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/4.0.1/manifests"},{"name":"4.0","sha":"93c7bc1446f1f9e99b0919dceacf84fd92832811","kind":"commit","published_at":"2017-11-02T06:50:44.000Z","download_url":"https://codeload.github.com/python-websockets/websockets/tar.gz/4.0","html_url":"https://github.com/python-websockets/websockets/releases/tag/4.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-websockets/websockets@4.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/4.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/4.0/manifests"},{"name":"3.4","sha":"e812f02d30d930eb802e0439a397431880bad5f1","kind":"commit","published_at":"2017-08-20T11:58:20.000Z","download_url":"https://codeload.github.com/python-websockets/websockets/tar.gz/3.4","html_url":"https://github.com/python-websockets/websockets/releases/tag/3.4","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-websockets/websockets@3.4","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/3.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/3.4/manifests"},{"name":"3.3","sha":"c46ab352f6046522b4ac096418367bbd12d76ae6","kind":"commit","published_at":"2017-03-29T13:47:49.000Z","download_url":"https://codeload.github.com/python-websockets/websockets/tar.gz/3.3","html_url":"https://github.com/python-websockets/websockets/releases/tag/3.3","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-websockets/websockets@3.3","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/3.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/3.3/manifests"},{"name":"3.2","sha":"6e728f0357db864f5d1f6495ca9ab27c47c636af","kind":"commit","published_at":"2016-08-17T21:22:45.000Z","download_url":"https://codeload.github.com/python-websockets/websockets/tar.gz/3.2","html_url":"https://github.com/python-websockets/websockets/releases/tag/3.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-websockets/websockets@3.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/3.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/3.2/manifests"},{"name":"3.1","sha":"817a14fd3b85c0bdc4449bfe792098eaa2a45bfe","kind":"commit","published_at":"2016-04-21T20:20:10.000Z","download_url":"https://codeload.github.com/python-websockets/websockets/tar.gz/3.1","html_url":"https://github.com/python-websockets/websockets/releases/tag/3.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-websockets/websockets@3.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/3.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/3.1/manifests"},{"name":"3.0","sha":"7d7cac390637021ab9944dc7028a7b2e8f84983f","kind":"commit","published_at":"2015-12-25T11:12:35.000Z","download_url":"https://codeload.github.com/python-websockets/websockets/tar.gz/3.0","html_url":"https://github.com/python-websockets/websockets/releases/tag/3.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-websockets/websockets@3.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/3.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/3.0/manifests"},{"name":"2.7","sha":"2bd32e949e397f6c82d7de5d45363889bae65b9d","kind":"commit","published_at":"2015-11-18T19:52:09.000Z","download_url":"https://codeload.github.com/python-websockets/websockets/tar.gz/2.7","html_url":"https://github.com/python-websockets/websockets/releases/tag/2.7","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-websockets/websockets@2.7","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/2.7","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/2.7/manifests"},{"name":"2.6","sha":"72f9b68b87395bdf598411398d07917b043dfc41","kind":"commit","published_at":"2015-08-18T18:13:37.000Z","download_url":"https://codeload.github.com/python-websockets/websockets/tar.gz/2.6","html_url":"https://github.com/python-websockets/websockets/releases/tag/2.6","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-websockets/websockets@2.6","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/2.6","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/2.6/manifests"},{"name":"2.5","sha":"0c43316b07e93bddb3a688a104713f8a91dfaff5","kind":"commit","published_at":"2015-07-28T20:41:01.000Z","download_url":"https://codeload.github.com/python-websockets/websockets/tar.gz/2.5","html_url":"https://github.com/python-websockets/websockets/releases/tag/2.5","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-websockets/websockets@2.5","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/2.5","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/2.5/manifests"},{"name":"2.4","sha":"9b81b7e5da8cc37cd7644ad58ac9648070703fe8","kind":"commit","published_at":"2015-01-31T20:10:50.000Z","download_url":"https://codeload.github.com/python-websockets/websockets/tar.gz/2.4","html_url":"https://github.com/python-websockets/websockets/releases/tag/2.4","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-websockets/websockets@2.4","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/2.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/2.4/manifests"},{"name":"2.3","sha":"67fa773d72b6b3888e86ae65f3d4f89ceb705198","kind":"commit","published_at":"2014-11-03T22:05:09.000Z","download_url":"https://codeload.github.com/python-websockets/websockets/tar.gz/2.3","html_url":"https://github.com/python-websockets/websockets/releases/tag/2.3","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-websockets/websockets@2.3","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/2.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/2.3/manifests"},{"name":"2.2","sha":"7e4ef005696a956def34fa735422ca4e1ef17197","kind":"commit","published_at":"2014-07-28T09:14:48.000Z","download_url":"https://codeload.github.com/python-websockets/websockets/tar.gz/2.2","html_url":"https://github.com/python-websockets/websockets/releases/tag/2.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-websockets/websockets@2.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/2.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/2.2/manifests"},{"name":"2.1","sha":"481986fd209c5d0667195390b5f1f56f2ee899a7","kind":"commit","published_at":"2014-04-26T13:47:49.000Z","download_url":"https://codeload.github.com/python-websockets/websockets/tar.gz/2.1","html_url":"https://github.com/python-websockets/websockets/releases/tag/2.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-websockets/websockets@2.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/2.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/2.1/manifests"},{"name":"2.0","sha":"d03ba5669bd386f8e873a620ff6a5a6926b340b4","kind":"commit","published_at":"2014-02-16T18:38:18.000Z","download_url":"https://codeload.github.com/python-websockets/websockets/tar.gz/2.0","html_url":"https://github.com/python-websockets/websockets/releases/tag/2.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-websockets/websockets@2.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/2.0/manifests"},{"name":"1.0","sha":"1aa31d0545c877aea22d3b4452a4b92dbd631306","kind":"commit","published_at":"2013-11-14T16:29:15.000Z","download_url":"https://codeload.github.com/python-websockets/websockets/tar.gz/1.0","html_url":"https://github.com/python-websockets/websockets/releases/tag/1.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/python-websockets/websockets@1.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/tags/1.0/manifests"}]},"repo_metadata_updated_at":"2026-08-15T19:29:06.193Z","dependent_packages_count":0,"downloads":null,"downloads_period":null,"dependent_repos_count":0,"rankings":{"downloads":null,"dependent_repos_count":4.78328514698273,"dependent_packages_count":4.482280635008168,"stargazers_count":null,"forks_count":null,"docker_downloads_count":null,"average":4.632782890995449},"purl":"pkg:golang/github.com/python-websockets/websockets","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/go/github.com/python-websockets/websockets","docker_dependents_count":null,"docker_downloads_count":null,"usage_url":"https://repos.ecosyste.ms/usage/go/github.com/python-websockets/websockets","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/go/github.com/python-websockets/websockets/dependencies","status":"removed","funding_links":["https://github.com/sponsors/python-websockets","https://opencollective.com/websockets","https://tidelift.com/funding/github/pypi/websockets"],"critical":null,"issue_metadata":{"last_synced_at":"2026-08-11T06:02:32.636Z","issues_count":308,"pull_requests_count":273,"avg_time_to_close_issue":13075627.309859155,"avg_time_to_close_pull_request":5649800.532520325,"issues_closed_count":284,"pull_requests_closed_count":246,"pull_request_authors_count":70,"issue_authors_count":246,"avg_comments_per_issue":4.064935064935065,"avg_comments_per_pull_request":1.531135531135531,"merged_pull_requests_count":153,"bot_issues_count":0,"bot_pull_requests_count":65,"past_year_issues_count":31,"past_year_pull_requests_count":60,"past_year_avg_time_to_close_issue":4172904.0714285714,"past_year_avg_time_to_close_pull_request":1766259.6851851852,"past_year_issues_closed_count":28,"past_year_pull_requests_closed_count":54,"past_year_pull_request_authors_count":21,"past_year_issue_authors_count":31,"past_year_avg_comments_per_issue":4.032258064516129,"past_year_avg_comments_per_pull_request":1.0166666666666666,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":22,"past_year_merged_pull_requests_count":36,"issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/issues","maintainers":[{"login":"aaugustin","count":140,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/aaugustin"},{"login":"cjerdonek","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/cjerdonek"}],"active_maintainers":[{"login":"aaugustin","count":16,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/aaugustin"}]},"versions_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/packages/github.com%2Fpython-websockets%2Fwebsockets/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/packages/github.com%2Fpython-websockets%2Fwebsockets/version_numbers","latest_version_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/packages/github.com%2Fpython-websockets%2Fwebsockets/latest_version","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/packages/github.com%2Fpython-websockets%2Fwebsockets/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/packages/github.com%2Fpython-websockets%2Fwebsockets/related_packages","codemeta_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/packages/github.com%2Fpython-websockets%2Fwebsockets/codemeta","maintainers":[],"registry":{"name":"proxy.golang.org","url":"https://proxy.golang.org","ecosystem":"go","default":true,"packages_count":2281895,"maintainers_count":0,"namespaces_count":839487,"keywords_count":124977,"github":"golang","metadata":{"funded_packages_count":67925,"sync_missing_packages_cursor":{"timestamp":"2026-08-17T00:00:58.969562Z","path":"github.com/Tektoncd/operator","version":"v0.78.0"},"rate_limit":1},"icon_url":"https://github.com/golang.png","created_at":"2022-04-04T15:19:22.939Z","updated_at":"2026-08-24T05:01:22.286Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/packages","maintainers_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/maintainers","namespaces_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/namespaces"}}],"commits":{"id":1256494,"full_name":"python-websockets/websockets","default_branch":"main","total_commits":1818,"total_committers":89,"total_bot_commits":40,"total_bot_committers":1,"mean_commits":20.426966292134832,"dds":0.0935093509350935,"past_year_total_commits":167,"past_year_total_committers":9,"past_year_total_bot_commits":20,"past_year_total_bot_committers":1,"past_year_mean_commits":18.555555555555557,"past_year_dds":0.16167664670658688,"last_synced_at":"2026-08-19T10:02:16.043Z","last_synced_commit":"caf5e15d7528e78e7709c96ea78a779a0da25847","created_at":"2023-05-17T16:40:30.961Z","updated_at":"2026-08-19T10:02:13.198Z","committers":[{"name":"Aymeric Augustin","email":"aymeric.augustin@m4x.org","login":"aaugustin","count":1648},{"name":"dependabot[bot]","email":"49699333+dependabot[bot]","login":"dependabot[bot]","count":40},{"name":"Chris Jerdonek","email":"chris.jerdonek@gmail.com","login":"cjerdonek","count":14},{"name":"mayeut","email":"mayeut","login":"mayeut","count":10},{"name":"Jonathan Martin","email":"homerunisgood@hotmail.com","login":null,"count":5},{"name":"Rémi Cardona","email":"remi.cardona@polyconseil.fr","login":"RemiCardona","count":4},{"name":"Cory Johns","email":"johnsca@gmail.com","login":"johnsca","count":4},{"name":"Szieberth Ádám","email":"sziebadam@gmail.com","login":"SzieberthAdam","count":3},{"name":"Michał Górny","email":"mgorny@gentoo.org","login":"mgorny","count":3},{"name":"xuanzhi33","email":"37460139+xuanzhi33","login":"xuanzhi33","count":2},{"name":"Tim Gates","email":"tim.gates@iress.com","login":"timgates42","count":2},{"name":"cclauss","email":"cclauss@bluewin.ch","login":null,"count":2},{"name":"Ben Hoyt","email":"benhoyt@gmail.com","login":"benhoyt","count":2},{"name":"Gunnlaugur Thor Briem","email":"gunnlaugur@gmail.com","login":"gthb","count":2},{"name":"Mark E. Haase","email":"mehaase@gmail.com","login":"mehaase","count":2},{"name":"Ram Rachum","email":"ram@rachum.com","login":"cool-RR","count":2},{"name":"Apoorv Darshan","email":"ad13dtu@gmail.com","login":"apoorvdarshan","count":1},{"name":"Antonio Curado","email":"Abestevao@gmail.com","login":"ABCurado","count":1},{"name":"Anton Lakotka","email":"antoha.by@gmail.com","login":"antohaby","count":1},{"name":"Anton Agestam","email":"git@antonagestam.se","login":"antonagestam","count":1},{"name":"Ali Al-Alak","email":"a.alalak@gmail.com","login":"a-alak","count":1},{"name":"Alexis Métaireau","email":"alexis@notmyidea.org","login":"almet","count":1},{"name":"=","email":"matt_youngberg@outlook.com","login":"mattyoungberg","count":1},{"name":"Stein Magnus Jodal","email":"stein.magnus@jodal.no","login":"jodal","count":1},{"name":"Janakarajan Natarajan","email":"janakan@amazon.com","login":"janaknat","count":1},{"name":"J. Nick Koston","email":"nick@koston.org","login":"bdraco","count":1},{"name":"Igor Starikov","email":"idlesign@yandex.ru","login":"idlesign","count":1},{"name":"Hugo","email":"hugovk","login":"hugovk","count":1},{"name":"Harmon","email":"Harmon758@gmail.com","login":"Harmon758","count":1},{"name":"Forrest Li","email":"floryst","login":"floryst","count":1},{"name":"Eugen Goebel","email":"eugen-goebel","login":"eugen-goebel","count":1},{"name":"Ashley Sommer","email":"flubba86@gmail.com","login":"ashleysommer","count":1},{"name":"Benjamin Loison","email":"12752145+Benjamin-Loison","login":"Benjamin-Loison","count":1},{"name":"Benoit Calvez","email":"benoit.calvez@polyconseil.fr","login":"dzen","count":1},{"name":"Carl Harris","email":"ceharris@vt.edu","login":"ceharris","count":1},{"name":"Joel Höner","email":"athre0z@zyantific.com","login":"athre0z","count":1},{"name":"Carlos Sobrinho","email":"sobrinho@google.com","login":null,"count":1},{"name":"Alex Coplan","email":"alex.coplan@starleaf.com","login":null,"count":1},{"name":"Irfanuddin","email":"irfanuddinshafi@gmail.com","login":null,"count":1},{"name":"Hauke Lampe","email":"lampe@hauke-lampe.de","login":null,"count":1},{"name":"Jonathan Martin","email":"jonathan.martin@marss.com","login":null,"count":1},{"name":"Rémy HUBSCHER","email":"rhubscher@mozilla.com","login":null,"count":1},{"name":"Yi Ren","email":"reny@microsoft.com","login":null,"count":1},{"name":"maxtaran2010","email":"ocotifuzo727@gmail.com","login":null,"count":1},{"name":"Rui Abreu Ferreira","email":"raf-ep@gmx.com","login":"equalsraf","count":1},{"name":"Sasja","email":"Sasja","login":"Sasja","count":1},{"name":"Shoaib","email":"shoaib_zafar@live.com","login":"outofnames","count":1},{"name":"Stefan Wojcik","email":"wojcikstefan@gmail.com","login":"wojcikstefan","count":1},{"name":"David Bordeynik","email":"david.bordeynik@gmail.com","login":"DavidBord","count":1},{"name":"Thierry Parmentelat","email":"thierry.parmentelat@inria.fr","login":"parmentelat","count":1},{"name":"Thomas Grainger","email":"tagrain@gmail.com","login":"graingert","count":1},{"name":"Thomas LÉVEIL","email":"thomasleveil","login":"thomasleveil","count":1},{"name":"Tobin Yehle","email":"tobinyehle@gmail.com","login":"tyehle","count":1},{"name":"Vladislav Smirnov","email":"beluckydaf@gmail.com","login":"BeLuckyDaf","count":1},{"name":"Will Toher","email":"will@vetrec.io","login":"wilt-vetrec","count":1},{"name":"akgnah","email":"1024@setq.me","login":"akgnah","count":1},{"name":"dan005","email":"danil.shevelev.2004@mail.ru","login":"daH005","count":1},{"name":"housleyjk","email":"housleyjk@gmail.com","login":"housleyjk","count":1},{"name":"kxxt","email":"rsworktech@outlook.com","login":"kxxt","count":1},{"name":"ooliver1","email":"oliverwilkes2006@icloud.com","login":"ooliver1","count":1},{"name":"pv2b","email":"pvz@pvz.pp.se","login":"pv2b","count":1},{"name":"q","email":"lwzm@qq.com","login":"lwzm","count":1},{"name":"reallinfo","email":"36298335+reallinfo","login":"reallinfo","count":1},{"name":"serozhenka","email":"sergeykaoff@gmail.com","login":"serozhenka","count":1},{"name":"shafemtol","email":"sha@femtol.net","login":"shafemtol","count":1},{"name":"wwqgtxx","email":"wwqgtxx@gmail.com","login":"wwqgtxx","count":1},{"name":"konichuvak","email":"arialinvlad@gmail.com","login":null,"count":1},{"name":"Erik van Raalte","email":"erik.vanraalte94@gmail.com","login":"evanraalte","count":1},{"name":"Edward Betts","email":"edward@4angle.com","login":"EdwardBetts","count":1},{"name":"Dmitry Lavrentev","email":"underespercontrol@gmail.com","login":"treylav","count":1},{"name":"David Sanders","email":"dsanders11@ucsbalum.com","login":"dsanders11","count":1},{"name":"38elements","email":"38elements","login":"38elements","count":1},{"name":"John L. Villalovos","email":"john@sodarock.com","login":"JohnVillalovos","count":1},{"name":"Julien Stephan","email":"jstephan@baylibre.com","login":"justeph","count":1},{"name":"Lennart Grahl","email":"lennart.grahl@gmail.com","login":"lgrahl","count":1},{"name":"Lumir Balhar","email":"lbalhar@redhat.com","login":"frenzymadness","count":1},{"name":"Manu NALEPA","email":"nalepae@gmail.com","login":"nalepae","count":1},{"name":"Matt Iversen","email":"teh.ivo@gmail.com","login":"Ivoz","count":1},{"name":"Michael Sverdlik","email":"m1keil","login":"m1keil","count":1},{"name":"Mike Putnam","email":"mike@theputnams.net","login":"mikeputnam","count":1},{"name":"Mircea Baja","email":"bajamircea@yahoo.com","login":"bajamircea","count":1},{"name":"MtkN1","email":"51289448+MtkN1","login":"MtkN1","count":1},{"name":"MysterialPy","email":"mysterialpy@gmail.com","login":"EvieePy","count":1},{"name":"Niklas Keller","email":"me@kelunik.com","login":"kelunik","count":1},{"name":"Oliver Zehentleitner","email":"47597331+oliver-zehentleitner","login":"oliver-zehentleitner","count":1},{"name":"Pablo Marti","email":"pablo@albanta.eu","login":"pablogamboa","count":1},{"name":"Preston Holmes","email":"preston@ptone.com","login":"ptone","count":1},{"name":"Ran Benita","email":"ran@unusedvar.com","login":"bluetech","count":1},{"name":"மனோஜ்குமார் பழனிச்சாமி","email":"smartmanoj42857@gmail.com","login":"SmartManoj","count":1}],"past_year_committers":[{"name":"Aymeric Augustin","email":"aymeric.augustin@fractalideas.com","login":"aaugustin","count":140},{"name":"dependabot[bot]","email":"49699333+dependabot[bot]","login":"dependabot[bot]","count":20},{"name":"Will Toher","email":"will@vetrec.io","login":"wilt-vetrec","count":1},{"name":"Lumir Balhar","email":"lbalhar@redhat.com","login":"frenzymadness","count":1},{"name":"Julien Stephan","email":"jstephan@baylibre.com","login":"justeph","count":1},{"name":"Eugen Goebel","email":"eugen-goebel","login":"eugen-goebel","count":1},{"name":"Apoorv Darshan","email":"ad13dtu@gmail.com","login":"apoorvdarshan","count":1},{"name":"maxtaran2010","email":"ocotifuzo727@gmail.com","login":null,"count":1},{"name":"Yi Ren","email":"reny@microsoft.com","login":null,"count":1}],"commits_url":"https://commits.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/commits","host":{"name":"GitHub","url":"https://github.com","kind":"github","last_synced_at":"2026-08-20T00:00:10.776Z","repositories_count":6750914,"commits_count":978124663,"contributors_count":41232052,"owners_count":1358723,"committers_count":3352629,"icon_url":"https://github.com/github.png","host_url":"https://commits.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://commits.ecosyste.ms/api/v1/hosts/GitHub/repositories"}},"issues":{"table":{"full_name":"python-websockets/websockets","html_url":"https://github.com/python-websockets/websockets","last_synced_at":"2026-08-23T12:04:17.231Z","status":null,"issues_count":309,"pull_requests_count":276,"avg_time_to_close_issue":13075627.309859155,"avg_time_to_close_pull_request":5649800.532520325,"issues_closed_count":284,"pull_requests_closed_count":246,"pull_request_authors_count":72,"issue_authors_count":247,"avg_comments_per_issue":4.067961165048544,"avg_comments_per_pull_request":1.5181159420289856,"merged_pull_requests_count":153,"bot_issues_count":0,"bot_pull_requests_count":65,"past_year_issues_count":31,"past_year_pull_requests_count":61,"past_year_avg_time_to_close_issue":4172904.0714285714,"past_year_avg_time_to_close_pull_request":1742554.3962264152,"past_year_issues_closed_count":28,"past_year_pull_requests_closed_count":53,"past_year_pull_request_authors_count":23,"past_year_issue_authors_count":31,"past_year_avg_comments_per_issue":4.193548387096774,"past_year_avg_comments_per_pull_request":1.0,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":20,"past_year_merged_pull_requests_count":36,"created_at":"2023-06-13T15:30:34.187Z","updated_at":"2026-08-23T12:04:17.231Z","repository_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets","issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-websockets%2Fwebsockets/issues","issue_labels_count":{"table":{"enhancement":50,"bug":35,"question":23,"documentation":21,"low priority":12,"blocked":6,"rewrite":4,"help wanted":3,"high priority":2}},"pull_request_labels_count":{"table":{"dependencies":65,"github_actions":30,"review wanted":5,"bug":5,"enhancement":1}},"issue_author_associations_count":{"table":{"NONE":262,"MEMBER":38,"CONTRIBUTOR":8,"COLLABORATOR":1}},"pull_request_author_associations_count":{"table":{"MEMBER":103,"CONTRIBUTOR":92,"NONE":81}},"issue_authors":{"table":{"aaugustin":38,"FrankC01":5,"tushargoyal22":4,"Pithikos":3,"gborrageiro":3,"damc":3,"alamathe1":2,"WrongAnswertoAC":2,"killerwhite":2,"bfontaine":2,"rayrapetyan":2,"jbdyn":2,"daveisfera":2,"x011":2,"stalkerg":2,"richytong":2,"DrPyser":2,"mtelka":2,"gnachman":1,"donkahuna":1,"IvesFeng":1,"Danstiv":1,"suryanarayanan035":1,"Sonuq":1,"Harmon758":1,"0-wiz-0":1,"vishal180618":1,"MarlieChiller":1,"Kludex":1,"t0mm4rx":1,"evidencebp":1,"braindevices":1,"skewty":1,"m-emori":1,"parmentelat":1,"dabao1990":1,"TrevinAvery":1,"HaroldObasi":1,"Rosuav":1,"kyochikuto":1,"SetarehSamami":1,"tynianovddi":1,"Flowrey":1,"pgrandinetti":1,"PrafulSinghal-19":1,"vertti":1,"merlinz01":1,"Jolmberg":1,"bdraco":1,"Phlogistique":1,"oss-fuzz-robot":1,"lonode":1,"kuifu":1,"snowuyl":1,"AhmedERady":1,"lolsborn":1,"savejeff":1,"justeph":1,"iorss":1,"go--":1,"sminnee":1,"francisferrell":1,"Tom-python0121":1,"thomasleveil":1,"dangeReis":1,"vytas7":1,"bluetech":1,"josephernest":1,"itsover9999":1,"caveeroo":1,"erelsgl":1,"MarshalX":1,"river7816":1,"yemaney":1,"johndpope":1,"qci-amos":1,"sanvila":1,"maretodoric":1,"tamo":1,"m666m":1,"awesometype":1,"endertable":1,"jackswales":1,"iudeen":1,"ahaha721":1,"tamir-laminar":1,"rspadim":1,"Joshuaalbert":1,"andmis":1,"ywangwxd":1,"IlyaDjurin":1,"travick":1,"jmuhlich":1,"Serpens66":1,"bgK":1,"pmarcelll":1,"uSpike":1,"plorgai-ta":1,"jmrbcu":1,"WillCodeCo":1,"thegeronimo":1,"Shir0kamii":1,"wolph":1,"wom-bat":1,"castelo-software":1,"lvella":1,"leogallot":1,"shadowTW":1,"mweinelt":1,"walt-jones":1,"liqianhao111":1,"avdgrinten":1,"SauvageThomas":1,"pravindamodaran":1,"gustavi":1,"jmtts":1,"lhcunha":1,"pastet89":1,"properchopsticks":1,"mebest100":1,"danrossi":1,"brunohjs":1,"Atokulus":1,"jw-star":1,"kucharskim":1,"carlosmiei":1,"hinxx":1,"wlj644920158":1,"VerifyBot":1,"qux-bbb":1,"andreengels":1,"Pliosauroidea":1,"fmfranck":1,"marcinnformula":1,"normanlmfung":1,"manyhelp":1,"milk-bottle-liyu":1,"simontorres":1,"user895v":1,"shay-te":1,"kristjanvalur":1,"gridhead":1,"WORMSTweaker":1,"sallib":1,"niceguy135":1,"chanuthminivisadi-a11y":1,"dpergarc-c":1,"cfinnberg":1,"bagratte":1,"CaedenPH":1,"Time0o":1,"m1keil":1,"lucamuscat":1,"maxupp":1,"mandermo":1,"liyi-lee":1,"wenleix":1,"mvdwetering":1,"euri10":1,"dontbanmeplz":1,"hokaso":1,"btschwertfeger":1,"cclauss":1,"Electron4444":1,"m4su6747":1,"mick-liu":1,"kloczek":1,"ShervinDD":1,"daniel-soutar-ki":1,"aseiger":1,"mmertc":1,"BenjyWiener":1,"FuckingToasters":1,"scttbnsn":1,"lfse-slafleur":1,"davidawesome02":1,"baxterjo":1,"toppk":1,"FliegendeWurst":1,"chj113":1,"hassan20990":1,"albertyue":1,"felipebiaggi":1,"pskopnik":1,"Crypto7816":1,"ismaelorenstein":1,"chppppp":1,"apteronal":1,"albaintor":1,"dotysan":1,"nitanmarcel":1,"h-acker":1,"jonathanaguilarj10-art":1,"MianBilalSadiq-ProDev":1,"cl-dqh":1,"percojazz":1,"robertseliger":1,"cjerdonek":1,"karpetrosyan":1,"dailijia":1,"kazuki-ma":1,"idootop":1,"gmabey":1,"Jonirulah":1,"fti-ravhad":1,"satyam-cyc":1,"peteralm80":1,"suryanarayanan-rently":1,"paulmis":1,"OfferLifted":1,"ItsCubeTime":1,"LucaNicosia":1,"JungeWerther":1,"abex-py":1,"callTx":1,"hiro52061612":1,"mxjeff":1,"stanlyjohn2":1,"MaxProfesor":1,"pbeart":1,"MarkusPiotrowski":1,"drc38":1,"lampeh":1,"ajmirsky":1,"farivar-tabatabaei":1,"BwL1289":1,"ivanthewebber":1,"danielkoohmarey-bc":1,"JohnVillalovos":1,"youngkylejan":1,"altonotch":1,"airportyh":1,"yo123abxd":1,"juaoose":1,"Lamchi-Joo":1,"gandhis1":1,"koliyo":1,"stepienj":1,"ondrejchmelar":1,"edw4rb":1,"srikamalteja":1,"louking":1,"futureflsl":1,"PengdaLiu":1,"vgoklani":1,"johnthagen":1,"lukepighetti":1}},"pull_request_authors":{"table":{"aaugustin":103,"dependabot[bot]":65,"mattyoungberg":4,"Electron4444":4,"MauroAntonino":4,"a-alak":4,"majiayu000":3,"xuanzhi33":2,"cclauss":2,"liuyangc3":2,"MtkN1":2,"dqh-au":2,"floryst":2,"darkhaniop":2,"nanmuyao":2,"anthony-moreau":2,"Sanjays2402":2,"SLiV9":2,"thewhaleking":2,"btschwertfeger":2,"daH005":2,"lampeh":2,"kloczek":2,"simontorres":2,"JohnVillalovos":2,"xianglin1998":2,"alisdairbr":2,"idlesign":2,"serozhenka":2,"almet":2,"mebest100":2,"Benjamin-Loison":1,"Rosuav":1,"wilt-vetrec":1,"maxtaran2010":1,"Matthew-Burkard":1,"0xdade":1,"shafemtol":1,"dsanders11":1,"ABCurado":1,"gthb":1,"kxxt":1,"DarkArc":1,"naarob":1,"DavidKorczynski":1,"eugen-goebel":1,"armorbreak001":1,"SAY-5":1,"abex-py":1,"vortex-captain":1,"nalepae":1,"wom-bat":1,"frenzymadness":1,"Nicolas-Feude":1,"bdraco":1,"stewartsmith":1,"anil-kamani":1,"hroncok":1,"Harmon758":1,"128f":1,"justeph":1,"lennney":1,"Mubashir78":1,"Copilot":1,"jumbledFox":1,"scttbnsn":1,"apoorvdarshan":1,"drc38":1,"Sasja":1,"ceharris":1,"bluetech":1,"peteralm80":1}},"host":{"table":{"name":"GitHub","url":"https://github.com","kind":"github","last_synced_at":"2026-08-24T00:00:06.384Z","repositories_count":16301769,"issues_count":42335015,"pull_requests_count":134763975,"authors_count":11516393,"icon_url":"https://github.com/github.png","host_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories","owners_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/owners","authors_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors"}},"past_year_issue_labels_count":{"table":{"bug":7,"enhancement":5,"question":3,"blocked":1}},"past_year_pull_request_labels_count":{"table":{"dependencies":20,"github_actions":20}},"past_year_issue_author_associations_count":{"table":{"NONE":29,"CONTRIBUTOR":1,"MEMBER":1}},"past_year_pull_request_author_associations_count":{"table":{"CONTRIBUTOR":23,"NONE":22,"MEMBER":16}},"past_year_issue_authors":{"table":{"0-wiz-0":1,"aaugustin":1,"abex-py":1,"andmis":1,"caveeroo":1,"cfinnberg":1,"chanuthminivisadi-a11y":1,"danrossi":1,"Danstiv":1,"daveisfera":1,"dpergarc-c":1,"farivar-tabatabaei":1,"hiro52061612":1,"ismaelorenstein":1,"ivanthewebber":1,"jonathanaguilarj10-art":1,"justeph":1,"karpetrosyan":1,"kazuki-ma":1,"Kludex":1,"lampeh":1,"merlinz01":1,"oss-fuzz-robot":1,"pbeart":1,"peteralm80":1,"Pliosauroidea":1,"pmarcelll":1,"sallib":1,"sanvila":1,"scttbnsn":1,"stalkerg":1}},"past_year_pull_request_authors":{"table":{"dependabot[bot]":20,"aaugustin":16,"majiayu000":3,"Sanjays2402":2,"liuyangc3":2,"wilt-vetrec":1,"vortex-captain":1,"stewartsmith":1,"scttbnsn":1,"SAY-5":1,"abex-py":1,"peteralm80":1,"naarob":1,"Mubashir78":1,"maxtaran2010":1,"apoorvdarshan":1,"armorbreak001":1,"lennney":1,"justeph":1,"frenzymadness":1,"eugen-goebel":1,"Copilot":1,"DarkArc":1}},"maintainers":[{"table":{"login":"aaugustin","count":141,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/aaugustin"}},{"table":{"login":"cjerdonek","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/cjerdonek"}}],"active_maintainers":[{"table":{"login":"aaugustin","count":17,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/aaugustin"}}]}},"events":{"total":{"CreateEvent":51,"DeleteEvent":41,"ForkEvent":58,"IssueCommentEvent":436,"IssuesEvent":157,"PullRequestEvent":126,"PullRequestReviewCommentEvent":4,"PullRequestReviewEvent":5,"PushEvent":238,"ReleaseEvent":5,"WatchEvent":377},"last_year":{"CreateEvent":20,"DeleteEvent":16,"ForkEvent":16,"IssueCommentEvent":56,"IssuesEvent":17,"PullRequestEvent":37,"PullRequestReviewCommentEvent":1,"PullRequestReviewEvent":2,"PushEvent":57,"WatchEvent":69}},"keywords":["python","python3","websocket","websocket-client","websocket-library","websocket-server","websockets"],"dependencies":[{"ecosystem":"pypi","filepath":"docs/requirements.txt","sha":null,"kind":"manifest","created_at":"2022-07-12T15:03:08.895Z","updated_at":"2022-07-12T15:03:08.895Z","repository_link":"https://github.com/python-websockets/websockets/blob/main/docs/requirements.txt","dependencies":[{"id":159438483,"package_name":"furo","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":159438484,"package_name":"sphinx","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":159438485,"package_name":"sphinx-autobuild","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":159438486,"package_name":"sphinx-copybutton","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":159438487,"package_name":"sphinx-inline-tabs","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":159438488,"package_name":"sphinxcontrib-spelling","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":159438489,"package_name":"sphinxcontrib-trio","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":159438490,"package_name":"sphinxext-opengraph","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false}]},{"ecosystem":"pypi","filepath":"example/deployment/heroku/requirements.txt","sha":null,"kind":"manifest","created_at":"2022-07-12T15:03:09.065Z","updated_at":"2022-07-12T15:03:09.065Z","repository_link":"https://github.com/python-websockets/websockets/blob/main/example/deployment/heroku/requirements.txt","dependencies":[{"id":159438640,"package_name":"websockets","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false}]},{"ecosystem":"pypi","filepath":"example/tutorial/step3/requirements.txt","sha":null,"kind":"manifest","created_at":"2022-07-12T15:03:09.146Z","updated_at":"2022-07-12T15:03:09.146Z","repository_link":"https://github.com/python-websockets/websockets/blob/main/example/tutorial/step3/requirements.txt","dependencies":[{"id":159439167,"package_name":"websockets","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false}]},{"ecosystem":"actions","filepath":".github/workflows/tests.yml","sha":null,"kind":"manifest","created_at":"2023-01-13T15:00:23.622Z","updated_at":"2023-01-13T15:00:23.622Z","repository_link":"https://github.com/python-websockets/websockets/blob/main/.github/workflows/tests.yml","dependencies":[{"id":6879223605,"package_name":"actions/checkout","ecosystem":"actions","requirements":"v3","direct":true,"kind":"composite","optional":false},{"id":6879223606,"package_name":"actions/setup-python","ecosystem":"actions","requirements":"v4","direct":true,"kind":"composite","optional":false}]},{"ecosystem":"docker","filepath":"example/deployment/kubernetes/Dockerfile","sha":null,"kind":"manifest","created_at":"2023-01-13T15:00:24.256Z","updated_at":"2023-01-13T15:00:24.256Z","repository_link":"https://github.com/python-websockets/websockets/blob/main/example/deployment/kubernetes/Dockerfile","dependencies":[{"id":6879224185,"package_name":"python","ecosystem":"docker","requirements":"3.9-alpine","direct":true,"kind":"build","optional":false}]},{"ecosystem":"pypi","filepath":"example/deployment/fly/requirements.txt","sha":null,"kind":"manifest","created_at":"2023-01-13T15:00:24.696Z","updated_at":"2023-01-13T15:00:24.696Z","repository_link":"https://github.com/python-websockets/websockets/blob/main/example/deployment/fly/requirements.txt","dependencies":[{"id":6879224507,"package_name":"websockets","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false}]},{"ecosystem":"pypi","filepath":"example/deployment/render/requirements.txt","sha":null,"kind":"manifest","created_at":"2023-01-13T15:00:25.296Z","updated_at":"2023-01-13T15:00:25.296Z","repository_link":"https://github.com/python-websockets/websockets/blob/main/example/deployment/render/requirements.txt","dependencies":[{"id":6879226055,"package_name":"websockets","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false}]},{"ecosystem":"pypi","filepath":"tests/requirements.txt","sha":null,"kind":"manifest","created_at":"2026-07-15T19:03:08.287Z","updated_at":"2026-07-15T19:03:08.287Z","repository_link":"https://github.com/python-websockets/websockets/blob/main/tests/requirements.txt","dependencies":[{"id":25881249650,"package_name":"mitmproxy","ecosystem":"pypi","requirements":"*","direct":true,"kind":"test","optional":false},{"id":25881249690,"package_name":"python-socks","ecosystem":"pypi","requirements":"*","direct":true,"kind":"test","optional":false},{"id":25881249718,"package_name":"trio","ecosystem":"pypi","requirements":"*","direct":true,"kind":"test","optional":false}]},{"ecosystem":"pypi","filepath":"example/deployment/koyeb/requirements.txt","sha":null,"kind":"manifest","created_at":"2026-07-15T19:03:08.161Z","updated_at":"2026-07-15T19:03:08.161Z","repository_link":"https://github.com/python-websockets/websockets/blob/main/example/deployment/koyeb/requirements.txt","dependencies":[{"id":25881249627,"package_name":"websockets","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false}]},{"ecosystem":"pypi","filepath":"pyproject.toml","sha":null,"kind":"manifest","created_at":"2023-07-27T16:42:55.537Z","updated_at":"2023-07-27T16:42:55.537Z","repository_link":"https://github.com/python-websockets/websockets/blob/main/pyproject.toml","dependencies":[]},{"ecosystem":"pypi","filepath":"setup.py","sha":null,"kind":"manifest","created_at":"2023-07-27T16:42:55.545Z","updated_at":"2023-07-27T16:42:55.545Z","repository_link":"https://github.com/python-websockets/websockets/blob/main/setup.py","dependencies":[]},{"ecosystem":"actions","filepath":".github/workflows/release.yml","sha":null,"kind":"manifest","created_at":"2023-11-04T18:35:46.548Z","updated_at":"2023-11-04T18:35:46.548Z","repository_link":"https://github.com/python-websockets/websockets/blob/main/.github/workflows/release.yml","dependencies":[{"id":14307997380,"package_name":"actions/checkout","ecosystem":"actions","requirements":"v4","direct":true,"kind":"composite","optional":false},{"id":14307997381,"package_name":"actions/setup-python","ecosystem":"actions","requirements":"v4","direct":true,"kind":"composite","optional":false},{"id":14307997382,"package_name":"actions/upload-artifact","ecosystem":"actions","requirements":"v3","direct":true,"kind":"composite","optional":false},{"id":14307997383,"package_name":"docker/setup-qemu-action","ecosystem":"actions","requirements":"v3","direct":true,"kind":"composite","optional":false},{"id":14307997384,"package_name":"pypa/cibuildwheel","ecosystem":"actions","requirements":"v2.16.2","direct":true,"kind":"composite","optional":false},{"id":14307997385,"package_name":"actions/download-artifact","ecosystem":"actions","requirements":"v3","direct":true,"kind":"composite","optional":false},{"id":14307997386,"package_name":"pypa/gh-action-pypi-publish","ecosystem":"actions","requirements":"release/v1","direct":true,"kind":"composite","optional":false}]}],"score":34.483807032176514,"created_at":"2025-11-11T15:17:16.960Z","updated_at":"2026-08-24T12:33:15.504Z","avatar_url":"https://github.com/python-websockets.png","language":"Python","codemeta":null,"publiccode":null,"project_url":"https://summary.ecosyste.ms/api/v1/projects/369338","html_url":"https://summary.ecosyste.ms/projects/369338"}