Skip to main content

Native WebSocket protocol-compliance test suite driving the Autobahn TestSuite case files

Project description

kosoku

kosoku (pronounced kōsoku) is a fast and modern WebSocket protocol-compliance fuzzing client. Kosoku is the Japanese word for highway and is inspired by the Autobahn TestSuite.

kosoku drives the Autobahn TestSuite's own case files against a server or client under test, but replaces Autobahn's test runner with one written in Rust, using PyO3 to drive actual Autobahn Python case files. While they cannot be used 100% as-is due to Python2/3 differences we need to adjust for, we can auto-translate the few fixes needed for cases that are still structured identically. This ensures the same test coverage for this new implementation, which would otherwise be difficult to verify if porting everything to Rust (or Go, etc).

Usage

The runner is published as native wheels to PyPI. For example, you can try it with uvx.

uvx kosoku -h

For Python users, the exported Python API is likely more convenient.

import asyncio
from kosoku import run_fuzzingclient, run_fuzzingserver

def test_client():
    async with run_fuzzingserver() as server:
        await run_client_under_test(server.address)
        await asyncio.wait_for(server.get_result(), timeout=120)

def test_server():
    # Or more likely a pytest fixture
    server = asyncio.create_task(run_server_under_test())
    await run_fuzzingclient("localhost:9001")
    server.cancel()

Why another runner?

Autobahn TestSuite has excellent coverage of the WebSocket spec and is the de-facto conformance suite across almost, if not all of WebSocket implementations. However, it is showing its age, only running with Python 2. Given the challenge of setting up Python 2 in modern times, this effectively means having to use Docker to run tests, which is tedious and slow. This is especially slow on modern macOS laptops because there aren't any arm64 images available.

The test suite is too important to have such a legacy setup, so this project brings a new modern runner, fully compatible, but with the performance of concurrent Rust and binaries published for a wide variety of platforms.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

kosoku-0.1.0.tar.gz (1.3 MB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

kosoku-0.1.0-pp311-pypy311_pp73-win_amd64.whl (2.7 MB view details)

Uploaded PyPyWindows x86-64

kosoku-0.1.0-pp311-pypy311_pp73-musllinux_1_2_x86_64.whl (3.2 MB view details)

Uploaded PyPymusllinux: musl 1.2+ x86-64

kosoku-0.1.0-pp311-pypy311_pp73-musllinux_1_2_aarch64.whl (3.2 MB view details)

Uploaded PyPymusllinux: musl 1.2+ ARM64

kosoku-0.1.0-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (3.0 MB view details)

Uploaded PyPymanylinux: glibc 2.17+ x86-64

kosoku-0.1.0-pp311-pypy311_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (3.0 MB view details)

Uploaded PyPymanylinux: glibc 2.17+ ARM64

kosoku-0.1.0-pp311-pypy311_pp73-macosx_11_0_arm64.whl (2.8 MB view details)

Uploaded PyPymacOS 11.0+ ARM64

kosoku-0.1.0-cp314-cp314t-win_amd64.whl (2.7 MB view details)

Uploaded CPython 3.14tWindows x86-64

kosoku-0.1.0-cp314-cp314t-musllinux_1_2_x86_64.whl (3.2 MB view details)

Uploaded CPython 3.14tmusllinux: musl 1.2+ x86-64

kosoku-0.1.0-cp314-cp314t-musllinux_1_2_aarch64.whl (3.1 MB view details)

Uploaded CPython 3.14tmusllinux: musl 1.2+ ARM64

kosoku-0.1.0-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (3.0 MB view details)

Uploaded CPython 3.14tmanylinux: glibc 2.17+ x86-64

kosoku-0.1.0-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (3.0 MB view details)

Uploaded CPython 3.14tmanylinux: glibc 2.17+ ARM64

kosoku-0.1.0-cp314-cp314t-macosx_11_0_arm64.whl (2.8 MB view details)

Uploaded CPython 3.14tmacOS 11.0+ ARM64

kosoku-0.1.0-cp310-abi3-win_amd64.whl (2.7 MB view details)

Uploaded CPython 3.10+Windows x86-64

kosoku-0.1.0-cp310-abi3-musllinux_1_2_x86_64.whl (3.2 MB view details)

Uploaded CPython 3.10+musllinux: musl 1.2+ x86-64

kosoku-0.1.0-cp310-abi3-musllinux_1_2_aarch64.whl (3.2 MB view details)

Uploaded CPython 3.10+musllinux: musl 1.2+ ARM64

kosoku-0.1.0-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (3.0 MB view details)

Uploaded CPython 3.10+manylinux: glibc 2.17+ x86-64

kosoku-0.1.0-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (3.0 MB view details)

Uploaded CPython 3.10+manylinux: glibc 2.17+ ARM64

kosoku-0.1.0-cp310-abi3-macosx_11_0_arm64.whl (2.8 MB view details)

Uploaded CPython 3.10+macOS 11.0+ ARM64

File details

Details for the file kosoku-0.1.0.tar.gz.

File metadata

  • Download URL: kosoku-0.1.0.tar.gz
  • Upload date:
  • Size: 1.3 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.13

File hashes

Hashes for kosoku-0.1.0.tar.gz
Algorithm Hash digest
SHA256 24eb5293a4be841c32fcbc4834c7935cc880657e253ab1555cbac65e654594ee
MD5 2393e78af5284444c30d98a6cb288a8f
BLAKE2b-256 56368c238b62585349e4f0b521fd77e00de0bfd330653c90d128c783050d3f0e

See more details on using hashes here.

Provenance

The following attestation bundles were made for kosoku-0.1.0.tar.gz:

Publisher: release.yaml on curioswitch/kosoku

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file kosoku-0.1.0-pp311-pypy311_pp73-win_amd64.whl.

File metadata

File hashes

Hashes for kosoku-0.1.0-pp311-pypy311_pp73-win_amd64.whl
Algorithm Hash digest
SHA256 e6caa15f5180590a3a98029f31c12d322faa6ca62105ed50c04fe0e2cf015b50
MD5 d1b1197cc27efd68ee188e4b4bc9522f
BLAKE2b-256 daf4968af657dfe809e4e91d86a1246f7748bba17e8b84f7eb87dfbd04a4a08d

See more details on using hashes here.

Provenance

The following attestation bundles were made for kosoku-0.1.0-pp311-pypy311_pp73-win_amd64.whl:

Publisher: release.yaml on curioswitch/kosoku

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file kosoku-0.1.0-pp311-pypy311_pp73-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for kosoku-0.1.0-pp311-pypy311_pp73-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 bd613360297baf3664fe6a6c80a5c806fffa454957ca3f94d578a2b3970b6723
MD5 d3311e57cae6f6a20386d1fd5ef0d440
BLAKE2b-256 2c34c1b5b503dfd270151975407cc11fecb8055c49b5f9023f66ecf735fa03a4

See more details on using hashes here.

Provenance

The following attestation bundles were made for kosoku-0.1.0-pp311-pypy311_pp73-musllinux_1_2_x86_64.whl:

Publisher: release.yaml on curioswitch/kosoku

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file kosoku-0.1.0-pp311-pypy311_pp73-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for kosoku-0.1.0-pp311-pypy311_pp73-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 1fb5d43950b155a1f73ea173fa9d302c5b9ba0a43f0905f4b17633bb53a11909
MD5 3b991eebf42eff16e177f4f29adb0150
BLAKE2b-256 6db184eef32343f9ac5632391f59d9bdd9c3fea7c0c9b86770c2af88e35a95b0

See more details on using hashes here.

Provenance

The following attestation bundles were made for kosoku-0.1.0-pp311-pypy311_pp73-musllinux_1_2_aarch64.whl:

Publisher: release.yaml on curioswitch/kosoku

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file kosoku-0.1.0-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for kosoku-0.1.0-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 132e1e89d3f7b4779b60c7fbc0740fd168724e31bfb694119063380c2c80a685
MD5 3fc80efb0de8c730de6a345b1208e74f
BLAKE2b-256 cee04b9c054c5b74d420ee76af60b6714ae85cb21010088eeaadebab6b0f2172

See more details on using hashes here.

Provenance

The following attestation bundles were made for kosoku-0.1.0-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: release.yaml on curioswitch/kosoku

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file kosoku-0.1.0-pp311-pypy311_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for kosoku-0.1.0-pp311-pypy311_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 10fa65f249c56b31fcc5a77571033d53cfbcff631aa2ae3cb68443fff05f8857
MD5 4fea56dc54f7a97170003d91ccf57c65
BLAKE2b-256 1d67385f7655bb256f249aa35a981a8e9ba2f54686a4615b4d12d33376f56fdd

See more details on using hashes here.

Provenance

The following attestation bundles were made for kosoku-0.1.0-pp311-pypy311_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: release.yaml on curioswitch/kosoku

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file kosoku-0.1.0-pp311-pypy311_pp73-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for kosoku-0.1.0-pp311-pypy311_pp73-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 c68b49fae920cdd120e96b9475d3f51edc566ca8ce96afce85fe7181e93a1804
MD5 7b4f54bd83f4a582383b4fdab5c2e8d5
BLAKE2b-256 4f72cf832bd0e0fb64e82e42a2101342d32866e6bf5f1167c844840b8c2702f1

See more details on using hashes here.

Provenance

The following attestation bundles were made for kosoku-0.1.0-pp311-pypy311_pp73-macosx_11_0_arm64.whl:

Publisher: release.yaml on curioswitch/kosoku

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file kosoku-0.1.0-cp314-cp314t-win_amd64.whl.

File metadata

  • Download URL: kosoku-0.1.0-cp314-cp314t-win_amd64.whl
  • Upload date:
  • Size: 2.7 MB
  • Tags: CPython 3.14t, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.13

File hashes

Hashes for kosoku-0.1.0-cp314-cp314t-win_amd64.whl
Algorithm Hash digest
SHA256 86bc5a7e117babf09d7242220b740eaa4b426351f7b5c8c06eb7e8e87b3c3804
MD5 15f71dcde2219abaecd569323ed47f25
BLAKE2b-256 38f57c4518b512f8c71d6f8f51ac914f7331b903f6c2dbb129c2da38535edb1c

See more details on using hashes here.

Provenance

The following attestation bundles were made for kosoku-0.1.0-cp314-cp314t-win_amd64.whl:

Publisher: release.yaml on curioswitch/kosoku

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file kosoku-0.1.0-cp314-cp314t-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for kosoku-0.1.0-cp314-cp314t-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 bbe3e332e0bcbcefb2f34f9b4417aa7edc507b32704247a2db345c08a93e1a4b
MD5 ea127e16b212264ebc8d70bca8d4c720
BLAKE2b-256 2eebbf385518f43048baf427ded22c284616dc4130128240e9ff3c5280d36bd8

See more details on using hashes here.

Provenance

The following attestation bundles were made for kosoku-0.1.0-cp314-cp314t-musllinux_1_2_x86_64.whl:

Publisher: release.yaml on curioswitch/kosoku

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file kosoku-0.1.0-cp314-cp314t-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for kosoku-0.1.0-cp314-cp314t-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 6e75b5a31acb063ede373259e07d80a7647937c4a5139190a9e969656610800e
MD5 1194c249745e35d2f729c791ff343ad1
BLAKE2b-256 69a735836f00855e61da6d9987cd5c264887e877eac80da9f3407dd95721d799

See more details on using hashes here.

Provenance

The following attestation bundles were made for kosoku-0.1.0-cp314-cp314t-musllinux_1_2_aarch64.whl:

Publisher: release.yaml on curioswitch/kosoku

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file kosoku-0.1.0-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for kosoku-0.1.0-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 f7aee4ccf730201f89aed4c2672ec51217d2a662135d163d772c893972e28a1d
MD5 fd8f063b57d45e6b6118e75f5af7acf0
BLAKE2b-256 3e6957543061040db7d685fd4b0dc89f79a6f3c419d8c0d28fac5e070d5bea29

See more details on using hashes here.

Provenance

The following attestation bundles were made for kosoku-0.1.0-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: release.yaml on curioswitch/kosoku

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file kosoku-0.1.0-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for kosoku-0.1.0-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 65137d2002643df911c42c640d9433de828f864fed42820617ec867fe237ce35
MD5 afed67f043a0a4b0d9cd4822571dbb9b
BLAKE2b-256 dd863f2c4e746deb9106403f56cbe33e35d42cc06f1409cda13e6ccfdc9032da

See more details on using hashes here.

Provenance

The following attestation bundles were made for kosoku-0.1.0-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: release.yaml on curioswitch/kosoku

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file kosoku-0.1.0-cp314-cp314t-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for kosoku-0.1.0-cp314-cp314t-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 df48ec9b67965839c312b3470b9fd27184a9f7770147ea2d54d4ee7f5c15b594
MD5 be9922dd5631eddd1f1740d8cc0c5d72
BLAKE2b-256 5d51e71abbf477ef51a1a3835a32582d86aacdceaec756edee059084d7b77c8e

See more details on using hashes here.

Provenance

The following attestation bundles were made for kosoku-0.1.0-cp314-cp314t-macosx_11_0_arm64.whl:

Publisher: release.yaml on curioswitch/kosoku

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file kosoku-0.1.0-cp310-abi3-win_amd64.whl.

File metadata

  • Download URL: kosoku-0.1.0-cp310-abi3-win_amd64.whl
  • Upload date:
  • Size: 2.7 MB
  • Tags: CPython 3.10+, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.13

File hashes

Hashes for kosoku-0.1.0-cp310-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 bc6aa2dd6ec67491a3cdd86302e67907f52ad50043735b457714329676bf3b8e
MD5 a5bb2615e0abb64f7521129eacfae7ab
BLAKE2b-256 dc86eb84e5d44afdfbee4b91d38cdaf3cbf11c389f8f814a5b5bff94bbec0241

See more details on using hashes here.

Provenance

The following attestation bundles were made for kosoku-0.1.0-cp310-abi3-win_amd64.whl:

Publisher: release.yaml on curioswitch/kosoku

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file kosoku-0.1.0-cp310-abi3-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for kosoku-0.1.0-cp310-abi3-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 af492185ce47ea705d23bef2c30df8574e95d81766c6eac661f544dfc8443c8b
MD5 14405107a522dab40707087c4a379ceb
BLAKE2b-256 d88d5be240dd6bb8c7bac120d4ec442189b398e869870fe19579069dff4e2f93

See more details on using hashes here.

Provenance

The following attestation bundles were made for kosoku-0.1.0-cp310-abi3-musllinux_1_2_x86_64.whl:

Publisher: release.yaml on curioswitch/kosoku

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file kosoku-0.1.0-cp310-abi3-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for kosoku-0.1.0-cp310-abi3-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 25f03225006c1cf1eb65509e7819d0dee892fd5e269043be9b4d3b302f7bfd9f
MD5 472a02fbbdd1b36a9a3109863be46203
BLAKE2b-256 53d69990dddc7f701dc1933214895fab86c3715abe561f27d222056bb2ce2249

See more details on using hashes here.

Provenance

The following attestation bundles were made for kosoku-0.1.0-cp310-abi3-musllinux_1_2_aarch64.whl:

Publisher: release.yaml on curioswitch/kosoku

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file kosoku-0.1.0-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for kosoku-0.1.0-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 a9b34e593defe29d931e346c88947b58a015495f09dd13643e4cc952c75602ac
MD5 9e5fe2425e3a3e867ef1184843f04e73
BLAKE2b-256 d50a53bf4f5e994a080b1c058fecea041132013301076f8cdbc6a5cb915ef3b0

See more details on using hashes here.

Provenance

The following attestation bundles were made for kosoku-0.1.0-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: release.yaml on curioswitch/kosoku

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file kosoku-0.1.0-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for kosoku-0.1.0-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 911610fc6d21e9d8b5b53936ea134b2b4ab58cd6252e9ad7c7f69c540a028027
MD5 3814c0f3a092d23e805ed65fdfb8d980
BLAKE2b-256 3bac7bae145dd1e908ad7e12623e232f4b782dd266cf4a8c673a856efda9ab17

See more details on using hashes here.

Provenance

The following attestation bundles were made for kosoku-0.1.0-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: release.yaml on curioswitch/kosoku

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file kosoku-0.1.0-cp310-abi3-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for kosoku-0.1.0-cp310-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 398e2a5cd5bf1eaa95d4342540a87f9c58edf5200478eccfaf07ee21fb80244a
MD5 bcf6488daa61daae4ac646153befaf48
BLAKE2b-256 aeb8bd948f91ca1b0f73fc8adeddedb3c02d7124dd6a3962960c08929c64baaf

See more details on using hashes here.

Provenance

The following attestation bundles were made for kosoku-0.1.0-cp310-abi3-macosx_11_0_arm64.whl:

Publisher: release.yaml on curioswitch/kosoku

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page