type: CreationInfo
spec version: 3.0.1
created by: https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP4/everything/aarch64-074b704b-0eaf-4bcb-89c3-8ea4fa68b0fd-specv3/SPDXRef-gnrtd0
created using: https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP4/everything/aarch64-074b704b-0eaf-4bcb-89c3-8ea4fa68b0fd-specv3/additionalToolSPDXRef-gnrtd1
created: 2026-07-04T04:28:12Z

type: CreationInfo
spec version: 3.0.1
created by: https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP4/everything/aarch64-074b704b-0eaf-4bcb-89c3-8ea4fa68b0fd-specv3/SPDXRef-gnrtd2
created using: https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP4/everything/aarch64-074b704b-0eaf-4bcb-89c3-8ea4fa68b0fd-specv3/additionalToolSPDXRef-gnrtd3
created: 2026-07-04T04:28:12Z

spdx id: https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP4/everything/aarch64-074b704b-0eaf-4bcb-89c3-8ea4fa68b0fd-specv3/SPDXRef-gnrtd97353
type: Relationship
relationship type: hasConcludedLicense
to: https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP4/everything/aarch64-074b704b-0eaf-4bcb-89c3-8ea4fa68b0fd-specv3/SPDXRef-gnrtd546
from: https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP4/everything/aarch64-074b704b-0eaf-4bcb-89c3-8ea4fa68b0fd-specv3/SPDXRef-gnrtd97352
creation info: _:creationInfo_0

spdx id: https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP4/everything/aarch64-074b704b-0eaf-4bcb-89c3-8ea4fa68b0fd-specv3/SPDXRef-gnrtd97355
type: Relationship
relationship type: hasDeclaredLicense
to: https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP4/everything/aarch64-074b704b-0eaf-4bcb-89c3-8ea4fa68b0fd-specv3/SPDXRef-gnrtd546
from: https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP4/everything/aarch64-074b704b-0eaf-4bcb-89c3-8ea4fa68b0fd-specv3/SPDXRef-gnrtd97352
creation info: _:creationInfo_0

spdx id: https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP4/everything/aarch64-074b704b-0eaf-4bcb-89c3-8ea4fa68b0fd-specv3/SPDXRef-gnrtd546
type: simplelicensing_LicenseExpression
simplelicensing license expression: BSD-3-Clause
creation info: _:creationInfo_0

spdx id: https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP4/everything/aarch64-074b704b-0eaf-4bcb-89c3-8ea4fa68b0fd-specv3/SPDXRef-gnrtd97354
type: Organization
name: http://openeuler.org
creation info: _:creationInfo_0

spdx id: https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP4/everything/aarch64-074b704b-0eaf-4bcb-89c3-8ea4fa68b0fd-specv3/SPDXRef-gnrtd97352
type: software_Package
supplied by: https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP4/everything/aarch64-074b704b-0eaf-4bcb-89c3-8ea4fa68b0fd-specv3/SPDXRef-gnrtd97354
software download location: NOASSERTION
summary: Development documents and examples for websockets
software package version: 0:12.0-1.oe2403sp4
software home page: https://github.com/aaugustin/websockets
description: ``websockets`` is a library for building WebSocket servers_ and clients_ in Python with a focus on correctness and simplicity. Built on top of ``asyncio``, Python's standard asynchronous I/O framework, it provides an elegant coroutine-based API. `Documentation is available on Read the Docs. <https://websockets.readthedocs.io/>`_ Here's how a client sends and receives messages: import asyncio import websockets async def hello(uri): async with websockets.connect(uri) as websocket: await websocket.send("Hello world!") await websocket.recv() asyncio.get_event_loop().run_until_complete( hello('ws://localhost:8765')) And here's an echo server: import asyncio import websockets async def echo(websocket, path): async for message in websocket: await websocket.send(message) asyncio.get_event_loop().run_until_complete( websockets.serve(echo, 'localhost', 8765)) asyncio.get_event_loop().run_forever() Does that look good? `Get started with the tutorial! <https://websockets.readthedocs.io/en/stable/intro.html>`_
name: python-websockets-help
software source info: acquired package info from repodata DB: repodata/f1f85c23079e7764ad00378a9fc5d660b89a03657290e75426caf7be5b7da462-primary.sqlite.bz2
creation info: _:creationInfo_0

spdx id: https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP4/everything/aarch64-074b704b-0eaf-4bcb-89c3-8ea4fa68b0fd-specv3/additionalToolSPDXRef-gnrtd3
type: Tool
name: syft-[not provided]
creation info: _:creationInfo_1

spdx id: https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP4/everything/aarch64-074b704b-0eaf-4bcb-89c3-8ea4fa68b0fd-specv3/additionalToolSPDXRef-gnrtd1
type: Tool
name: syft-[not provided]
creation info: _:creationInfo_0