type: CreationInfo
spec version: 3.0.1
created by: https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP4/everything/x86_64-4d64d0a4-9352-45cb-9c5f-6366db87449d-specv3/SPDXRef-gnrtd2
created using: https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP4/everything/x86_64-4d64d0a4-9352-45cb-9c5f-6366db87449d-specv3/additionalToolSPDXRef-gnrtd3
created: 2026-07-04T02:24:06Z

type: CreationInfo
spec version: 3.0.1
created by: https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP4/everything/x86_64-4d64d0a4-9352-45cb-9c5f-6366db87449d-specv3/SPDXRef-gnrtd0
created using: https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP4/everything/x86_64-4d64d0a4-9352-45cb-9c5f-6366db87449d-specv3/additionalToolSPDXRef-gnrtd1
created: 2026-07-04T02:24:06Z

spdx id: https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP4/everything/x86_64-4d64d0a4-9352-45cb-9c5f-6366db87449d-specv3/SPDXRef-gnrtd98127
type: Relationship
relationship type: hasConcludedLicense
to: https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP4/everything/x86_64-4d64d0a4-9352-45cb-9c5f-6366db87449d-specv3/SPDXRef-gnrtd242
from: https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP4/everything/x86_64-4d64d0a4-9352-45cb-9c5f-6366db87449d-specv3/SPDXRef-gnrtd98126
creation info: _:creationInfo_0

spdx id: https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP4/everything/x86_64-4d64d0a4-9352-45cb-9c5f-6366db87449d-specv3/SPDXRef-gnrtd98129
type: Relationship
relationship type: hasDeclaredLicense
to: https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP4/everything/x86_64-4d64d0a4-9352-45cb-9c5f-6366db87449d-specv3/SPDXRef-gnrtd242
from: https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP4/everything/x86_64-4d64d0a4-9352-45cb-9c5f-6366db87449d-specv3/SPDXRef-gnrtd98126
creation info: _:creationInfo_0

spdx id: https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP4/everything/x86_64-4d64d0a4-9352-45cb-9c5f-6366db87449d-specv3/SPDXRef-gnrtd242
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/x86_64-4d64d0a4-9352-45cb-9c5f-6366db87449d-specv3/SPDXRef-gnrtd98128
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/x86_64-4d64d0a4-9352-45cb-9c5f-6366db87449d-specv3/SPDXRef-gnrtd98126
type: software_Package
supplied by: https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP4/everything/x86_64-4d64d0a4-9352-45cb-9c5f-6366db87449d-specv3/SPDXRef-gnrtd98128
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/69e709f4d2852d98f12867a74015d19384fe2727ff670fd70178cdde80b1e77e-primary.sqlite.bz2
software package url: pkg:rpm/python-websockets-help@12.0-1.oe2403sp4?arch=x86_64&epoch=0&upstream=python-websockets-12.0-1.oe2403sp4.src.rpm
creation info: _:creationInfo_0

spdx id: https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP4/everything/x86_64-4d64d0a4-9352-45cb-9c5f-6366db87449d-specv3/additionalToolSPDXRef-gnrtd1
type: Tool
name: syft-[not provided]
creation info: _:creationInfo_0

spdx id: https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP4/everything/x86_64-4d64d0a4-9352-45cb-9c5f-6366db87449d-specv3/additionalToolSPDXRef-gnrtd3
type: Tool
name: syft-[not provided]
creation info: _:creationInfo_1