Skip to main content

Fast Python bindings for AIS-catcher's NMEA-to-JSON AIS decoder

Project description

aiscat

A fast, complete Python library for decoding AIS NMEA into structured dicts. Built on the AIS-catcher decoder; messages come out compatible with the AIS-catcher JSON format.

Why

Python has two established AIS decoders: pyais (pure-Python, MIT) and libais (C extension, Apache 2.0). Both have gaps:

  • pyais is ~20× slower than what's achievable in C.
  • libais's stream layer does not reassemble multi-part AIVDM — it silently drops every type-5 message (and other multi-part types).

aiscat closes both gaps by exposing AIS-catcher's mature decoder as a Python extension: full multi-part handling, lookup-table text fields (status_text, shiptype_text, …), country-code resolution, message 6/8 ASMs — everything AIS-catcher decodes — at C++ speed, in a dict shape that matches what AIS-catcher itself emits.

For live decode of a single station (~50 msg/s) any of these libraries is fast enough. aiscat earns its keep when throughput matters: replay of historical recordings, multi-receiver fan-in, batch analysis, and research workloads on millions to billions of messages.

Tradeoffs. aiscat is a C++ extension, so pip install either picks up a pre-built wheel for your platform or falls back to a source build that needs CMake and a C++11 compiler. The API is deliberately small — feed bytes, get dicts — without the configuration knobs, custom output formats, or filter chains pyais offers. And the licence is GPLv3 (inherited from AIS-catcher), so linking aiscat into a closed-source application makes that application GPL too. If any of those matter more to you than throughput, pyais is the right choice; aiscat is the right choice when you want the AIS-catcher JSON format produced quickly and reliably from Python.

Quickstart

pip install aiscat
import aiscat

dec = aiscat.Decoder()
dec.feed(b"!AIVDM,1,1,,A,15MgK45P3@G?fl0E`JbR0OwT0@MS,0*4E\r\n")
print(dec.next())
# {'type': 1, 'mmsi': 366730000, 'channel': 'A', 'rxuxtime': 1777739134.027,
#  'lat': 37.803802, 'lon': -122.392532, 'speed': 20.8, 'course': 51.3,
#  'status': 5, 'status_text': 'Moored', ...}

Benchmark

2,000,000 AIS messages (mixed types 1–4), Apple M-series, single thread:

Tool Time msg/s µs/msg vs fastest
AIS-catcher CLI (-r txt -o 5) 1.04s 1,922,000 0.52 1.00×
aiscat (this library) 1.05s 1,906,000 0.52 1.01×
gpsdecode (gpsd, BSD-2) — CLI 3.14s 636,000 1.57 3.02×
libais 0.17 (C, Apache 2.0) 5.33s 375,000 2.67 5.12×
pyais 3.0.0 (pure Python, MIT) 22.36s 89,000 11.18 21.49×

aiscat sits within 1% of the native AIS-catcher CLI despite producing rich Python dict objects (the CLI just stringifies JSON to stdout). It's 3× faster than gpsdecode, 5× faster than libais, and 21× faster than pyais.

The full benchmark — including the test-fixture generator — is in benchmarks/. Types 1–4 (single-line position reports / base station reports) are used because libais's stream API does not reassemble multi-part AIVDM groups; on a mixed corpus including type 5 (multi-part static data), libais silently drops every type-5 message. AIS-catcher, gpsdecode, and pyais handle multi-part correctly.

For perspective: a busy AIS shore station produces ~50 msg/s. Throughput matters when you're replaying recordings or aggregating dozens of receivers, not for live decode of a single antenna.

API

class Decoder:
    def __init__(self) -> None: ...
    def feed(self, data: bytes | bytearray | str) -> int: ...
    def next(self) -> dict | None: ...
    def pending(self) -> int: ...

def iter_decode(chunks: Iterable[bytes | str]) -> Iterator[dict]: ...
  • feed(data) parses NMEA AIVDM/AIVDO sentences out of the buffer. Multipart messages are reassembled internally; partial chunks are buffered until completed. Returns the number of decoded messages waiting.
  • next() pops one decoded message as a dict, or None if the queue is empty. Pop in a loop after each feed().
  • The queue is unbounded — drain it after each feed, or memory grows.
# Streaming pattern
import aiscat
dec = aiscat.Decoder()
with open("session.nmea", "rb") as f:
    while chunk := f.read(65536):
        dec.feed(chunk)
        while (msg := dec.next()) is not None:
            handle(msg)

Output format

Each decoded message is a dict containing the AIS protocol fields plus a small reception envelope. AIS-catcher's internal "meta" fields that don't apply to a Python decoder (SDR signal levels, decoder version, the original NMEA echo, etc.) are suppressed.

Lookup-table values are decoded for you — status comes through as both the raw integer and status_text ("Moored", "Under way using engine", …); same for shiptype_text, aid_type_text, etc.

For the full field reference — every key, its unit, and the lookup tables — see the AIS-catcher JSON decoding documentation.

Type hints

Decoded messages are plain dicts at runtime — zero overhead. For static type-checking and IDE autocomplete, aiscat.types provides one TypedDict per AIS message type (1–28) plus an AISMessage union:

from aiscat import Decoder, AISMessage

def handle(msg: AISMessage) -> None:
    if msg["type"] == 1:
        # mypy narrows to Type1; knows msg["lat"] is float
        print(msg["mmsi"], msg["lat"], msg["lon"])

Licence

GPLv3, inherited from AIS-catcher. Linking aiscat into a closed-source application makes that application GPLv3.

If you need a permissive licence (BSD/MIT/Apache), use one of:

  • pyais — pure-Python, MIT, the de facto standard for Python AIS work
  • libais — older C extension, Apache 2.0

aiscat exists for users who want AIS-catcher's decoding (multipart handling, lookup tables, channel A/B disambiguation, country tables, message-type 6/8 ASMs) and can live with the licence.

Building from source

Requires CMake ≥ 3.15, a C++11 compiler, and Python ≥ 3.9 with development headers.

git clone https://github.com/jvde-github/AIS-catcher
cd AIS-catcher/python
pip install -e .

The build pulls a curated subset of AIS-catcher's source (Marine/, JSON/, Library/, Utilities/) — about 8K lines of C++ — and compiles them together with the binding into _core.cpython-*.so. Build takes ~10 seconds.

Status

Pre-1.0. The decoder itself is mature — it's the AIS-catcher decoder, battle-tested in shore-station and SDR deployments. The Python surface is new and may evolve — feedback welcome.

Versioning tracks AIS-catcher's: 0.68.x uses AIS-catcher v0.68's decoder. Patch releases bump independently for binding-only changes.

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

aiscat-0.68.0.tar.gz (94.9 kB view details)

Uploaded Source

Built Distributions

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

aiscat-0.68.0-cp314-cp314-win_amd64.whl (166.3 kB view details)

Uploaded CPython 3.14Windows x86-64

aiscat-0.68.0-cp314-cp314-musllinux_1_2_x86_64.whl (1.3 MB view details)

Uploaded CPython 3.14musllinux: musl 1.2+ x86-64

aiscat-0.68.0-cp314-cp314-musllinux_1_2_aarch64.whl (1.2 MB view details)

Uploaded CPython 3.14musllinux: musl 1.2+ ARM64

aiscat-0.68.0-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (243.6 kB view details)

Uploaded CPython 3.14manylinux: glibc 2.24+ x86-64manylinux: glibc 2.28+ x86-64

aiscat-0.68.0-cp314-cp314-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl (229.2 kB view details)

Uploaded CPython 3.14manylinux: glibc 2.24+ ARM64manylinux: glibc 2.28+ ARM64

aiscat-0.68.0-cp314-cp314-macosx_11_0_arm64.whl (176.9 kB view details)

Uploaded CPython 3.14macOS 11.0+ ARM64

aiscat-0.68.0-cp313-cp313-win_amd64.whl (160.7 kB view details)

Uploaded CPython 3.13Windows x86-64

aiscat-0.68.0-cp313-cp313-musllinux_1_2_x86_64.whl (1.3 MB view details)

Uploaded CPython 3.13musllinux: musl 1.2+ x86-64

aiscat-0.68.0-cp313-cp313-musllinux_1_2_aarch64.whl (1.2 MB view details)

Uploaded CPython 3.13musllinux: musl 1.2+ ARM64

aiscat-0.68.0-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (243.6 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.24+ x86-64manylinux: glibc 2.28+ x86-64

aiscat-0.68.0-cp313-cp313-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl (229.2 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.24+ ARM64manylinux: glibc 2.28+ ARM64

aiscat-0.68.0-cp313-cp313-macosx_11_0_arm64.whl (177.2 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

aiscat-0.68.0-cp312-cp312-win_amd64.whl (160.7 kB view details)

Uploaded CPython 3.12Windows x86-64

aiscat-0.68.0-cp312-cp312-musllinux_1_2_x86_64.whl (1.3 MB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ x86-64

aiscat-0.68.0-cp312-cp312-musllinux_1_2_aarch64.whl (1.2 MB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ ARM64

aiscat-0.68.0-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (243.6 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.24+ x86-64manylinux: glibc 2.28+ x86-64

aiscat-0.68.0-cp312-cp312-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl (229.2 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.24+ ARM64manylinux: glibc 2.28+ ARM64

aiscat-0.68.0-cp312-cp312-macosx_11_0_arm64.whl (177.2 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

aiscat-0.68.0-cp311-cp311-win_amd64.whl (160.9 kB view details)

Uploaded CPython 3.11Windows x86-64

aiscat-0.68.0-cp311-cp311-musllinux_1_2_x86_64.whl (1.3 MB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ x86-64

aiscat-0.68.0-cp311-cp311-musllinux_1_2_aarch64.whl (1.2 MB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ ARM64

aiscat-0.68.0-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (243.6 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.24+ x86-64manylinux: glibc 2.28+ x86-64

aiscat-0.68.0-cp311-cp311-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl (229.2 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.24+ ARM64manylinux: glibc 2.28+ ARM64

aiscat-0.68.0-cp311-cp311-macosx_11_0_arm64.whl (176.9 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

aiscat-0.68.0-cp310-cp310-win_amd64.whl (160.9 kB view details)

Uploaded CPython 3.10Windows x86-64

aiscat-0.68.0-cp310-cp310-musllinux_1_2_x86_64.whl (1.3 MB view details)

Uploaded CPython 3.10musllinux: musl 1.2+ x86-64

aiscat-0.68.0-cp310-cp310-musllinux_1_2_aarch64.whl (1.2 MB view details)

Uploaded CPython 3.10musllinux: musl 1.2+ ARM64

aiscat-0.68.0-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (243.6 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.24+ x86-64manylinux: glibc 2.28+ x86-64

aiscat-0.68.0-cp310-cp310-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl (229.2 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.24+ ARM64manylinux: glibc 2.28+ ARM64

aiscat-0.68.0-cp310-cp310-macosx_11_0_arm64.whl (176.9 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

aiscat-0.68.0-cp39-cp39-win_amd64.whl (160.9 kB view details)

Uploaded CPython 3.9Windows x86-64

aiscat-0.68.0-cp39-cp39-musllinux_1_2_x86_64.whl (1.3 MB view details)

Uploaded CPython 3.9musllinux: musl 1.2+ x86-64

aiscat-0.68.0-cp39-cp39-musllinux_1_2_aarch64.whl (1.2 MB view details)

Uploaded CPython 3.9musllinux: musl 1.2+ ARM64

aiscat-0.68.0-cp39-cp39-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (243.6 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.24+ x86-64manylinux: glibc 2.28+ x86-64

aiscat-0.68.0-cp39-cp39-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl (229.2 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.24+ ARM64manylinux: glibc 2.28+ ARM64

aiscat-0.68.0-cp39-cp39-macosx_11_0_arm64.whl (176.9 kB view details)

Uploaded CPython 3.9macOS 11.0+ ARM64

File details

Details for the file aiscat-0.68.0.tar.gz.

File metadata

  • Download URL: aiscat-0.68.0.tar.gz
  • Upload date:
  • Size: 94.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for aiscat-0.68.0.tar.gz
Algorithm Hash digest
SHA256 914dbdbd224ad2c8d8482de1425f32a499b5b27f361f265b22f99b610b6325f8
MD5 d152ebf80a4e4b6a5f8daa4b00468382
BLAKE2b-256 acf96ff42deb07be69bd7c6ba1c13c5aae84269c84cd5964bac3ded7c0797f0d

See more details on using hashes here.

Provenance

The following attestation bundles were made for aiscat-0.68.0.tar.gz:

Publisher: aiscat-release.yml on jvde-github/AIS-catcher

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

File details

Details for the file aiscat-0.68.0-cp314-cp314-win_amd64.whl.

File metadata

  • Download URL: aiscat-0.68.0-cp314-cp314-win_amd64.whl
  • Upload date:
  • Size: 166.3 kB
  • Tags: CPython 3.14, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for aiscat-0.68.0-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 0bd142cfedc12bb2643ce1752c34ee6c972abe86d894c8954db006ef27cf0380
MD5 012c342cc3cadd6950fa992710259677
BLAKE2b-256 7e05433b85b741a3980bec28bbbdb0f1bd221c365fc831cabef1d76b9be5d034

See more details on using hashes here.

Provenance

The following attestation bundles were made for aiscat-0.68.0-cp314-cp314-win_amd64.whl:

Publisher: aiscat-release.yml on jvde-github/AIS-catcher

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

File details

Details for the file aiscat-0.68.0-cp314-cp314-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for aiscat-0.68.0-cp314-cp314-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 2f5f391b13725d0ca0479af58be791d236affc60fb434ab67cbfcfb4018e4286
MD5 e8fb68787e79ffae0f1623a618c01283
BLAKE2b-256 839878673ffda241e03704ed61ccf9abe2ee962d180468af377229bb27251a7b

See more details on using hashes here.

Provenance

The following attestation bundles were made for aiscat-0.68.0-cp314-cp314-musllinux_1_2_x86_64.whl:

Publisher: aiscat-release.yml on jvde-github/AIS-catcher

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

File details

Details for the file aiscat-0.68.0-cp314-cp314-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for aiscat-0.68.0-cp314-cp314-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 f7e982528431a5a77682eeceb91dd3bc810b8d311e7737e7ea6ecb9d57ff37cf
MD5 9ddfaa74be30427c1375549998c77274
BLAKE2b-256 4df4e937ee874dcc22f6a2d49c535262e45aa69c22ca61ced6dcc1d7eb940422

See more details on using hashes here.

Provenance

The following attestation bundles were made for aiscat-0.68.0-cp314-cp314-musllinux_1_2_aarch64.whl:

Publisher: aiscat-release.yml on jvde-github/AIS-catcher

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

File details

Details for the file aiscat-0.68.0-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for aiscat-0.68.0-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 151d7b783b5202f5773ba15ccadb88be9bf09ae3454c94ffc66ad2a06153c8c6
MD5 dfb1eee700d1303cd1e512616005e8d5
BLAKE2b-256 8e54e8fe1901389280505ad4b7bb2d1413f23762f80be0cd87696707183b3fae

See more details on using hashes here.

Provenance

The following attestation bundles were made for aiscat-0.68.0-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl:

Publisher: aiscat-release.yml on jvde-github/AIS-catcher

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

File details

Details for the file aiscat-0.68.0-cp314-cp314-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for aiscat-0.68.0-cp314-cp314-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 8c0658f69b730cb87d0feafe86efe7e783c0d82e00ce448cd9041c117120e123
MD5 551648cf5b8247c57691247fd3ad6044
BLAKE2b-256 ceb6c3f5bc1d6b4b88c7cbda5ce7ce3c9d18072d639fb0742d09c125484d62ae

See more details on using hashes here.

Provenance

The following attestation bundles were made for aiscat-0.68.0-cp314-cp314-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl:

Publisher: aiscat-release.yml on jvde-github/AIS-catcher

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

File details

Details for the file aiscat-0.68.0-cp314-cp314-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for aiscat-0.68.0-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 d6b23b9d68488f2d053a8bdd0ba10f0cc309eab4a1a3660ba6bc3e1f3bb9a53c
MD5 70998246b7b18e20c53a17b2b84a20b2
BLAKE2b-256 a04e746870ca7463ea1227bce4f0a212b7085a9f19e92febd0a571e45ad64c3b

See more details on using hashes here.

Provenance

The following attestation bundles were made for aiscat-0.68.0-cp314-cp314-macosx_11_0_arm64.whl:

Publisher: aiscat-release.yml on jvde-github/AIS-catcher

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

File details

Details for the file aiscat-0.68.0-cp313-cp313-win_amd64.whl.

File metadata

  • Download URL: aiscat-0.68.0-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 160.7 kB
  • Tags: CPython 3.13, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for aiscat-0.68.0-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 46092ae9d231bfd1797f3f3409c17b4859f88975b18ca148ea0e8c58a69a2100
MD5 8045f78c40a0a90e118fce9f7351758c
BLAKE2b-256 45a56b3041edf0bee3a9b774c8a21082a10bfcd6375ff3d8516c6f7d070b5b07

See more details on using hashes here.

Provenance

The following attestation bundles were made for aiscat-0.68.0-cp313-cp313-win_amd64.whl:

Publisher: aiscat-release.yml on jvde-github/AIS-catcher

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

File details

Details for the file aiscat-0.68.0-cp313-cp313-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for aiscat-0.68.0-cp313-cp313-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 bd1df3d5e0ca11d83766e36994d6fa424f30e9c5fc87d5f8cd81dcf52f3718e5
MD5 1c8b9b357f7f549c44c04e04dfac2a78
BLAKE2b-256 b14e84afafafafc879de61dcd5a9c620097f49ff8a8ceb690b7ed11b8a8c8b1c

See more details on using hashes here.

Provenance

The following attestation bundles were made for aiscat-0.68.0-cp313-cp313-musllinux_1_2_x86_64.whl:

Publisher: aiscat-release.yml on jvde-github/AIS-catcher

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

File details

Details for the file aiscat-0.68.0-cp313-cp313-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for aiscat-0.68.0-cp313-cp313-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 c326b753bc22cf1a2371e3b7f736f01285300c997a933027a92bb121be7b1a7a
MD5 2dc4b0d77895f27e3e1d474fe638882d
BLAKE2b-256 6fcb529a1977c07669f820d2c959779ddc3b2d08bdeed77754c803fcdc56cb6d

See more details on using hashes here.

Provenance

The following attestation bundles were made for aiscat-0.68.0-cp313-cp313-musllinux_1_2_aarch64.whl:

Publisher: aiscat-release.yml on jvde-github/AIS-catcher

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

File details

Details for the file aiscat-0.68.0-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for aiscat-0.68.0-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 3854b522e7a8edba545a16821e5a9de38af0392298103ee411a2ba83cc8154e0
MD5 4dcef45d124f99e0f9fba8ec89e40b0f
BLAKE2b-256 cc6afd46942457232d90d6ed0de03886d1e0398681dad605b6d1b3b55be6f1f0

See more details on using hashes here.

Provenance

The following attestation bundles were made for aiscat-0.68.0-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl:

Publisher: aiscat-release.yml on jvde-github/AIS-catcher

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

File details

Details for the file aiscat-0.68.0-cp313-cp313-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for aiscat-0.68.0-cp313-cp313-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 57baaeecd31845cdb999b6ce7ac3f3e209b219555b356237a7a9902206e5be7a
MD5 82f26e89c27505c3c05f00228d007ef1
BLAKE2b-256 8afa8a767d0d1fb3da12bd16f9805942d45f9b6b8b3f5c537b9396a9fb3d8f2c

See more details on using hashes here.

Provenance

The following attestation bundles were made for aiscat-0.68.0-cp313-cp313-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl:

Publisher: aiscat-release.yml on jvde-github/AIS-catcher

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

File details

Details for the file aiscat-0.68.0-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for aiscat-0.68.0-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 e4eea2ffd346d795fc5b191c1d2afcf6ce1e2ca191c90af7fd543e0670c6d3f6
MD5 106d694b15ceefd8b858986bda5d33a4
BLAKE2b-256 6040b088b1e6884824be36dc046488387f8e7508e7c0f150d4b7cd7d9179f7f5

See more details on using hashes here.

Provenance

The following attestation bundles were made for aiscat-0.68.0-cp313-cp313-macosx_11_0_arm64.whl:

Publisher: aiscat-release.yml on jvde-github/AIS-catcher

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

File details

Details for the file aiscat-0.68.0-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: aiscat-0.68.0-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 160.7 kB
  • Tags: CPython 3.12, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for aiscat-0.68.0-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 bb7b7794329bd2d578dfc90f58c0bd25c9fce1bdd71c434a052083e83deaae7b
MD5 b607431c67193a6a613c4a539e67fe41
BLAKE2b-256 ebe664dc3aa1fc736a9ea60333f1dd0ecfbef9838c57f39575de4dbb0be10fb4

See more details on using hashes here.

Provenance

The following attestation bundles were made for aiscat-0.68.0-cp312-cp312-win_amd64.whl:

Publisher: aiscat-release.yml on jvde-github/AIS-catcher

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

File details

Details for the file aiscat-0.68.0-cp312-cp312-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for aiscat-0.68.0-cp312-cp312-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 9a0474025a72534de2b5bb61e7e9496bf61903382fe0a0fc413c7ed2cad2c2ad
MD5 441a76cb9b92c93c6cb3c3d0f2e5d13d
BLAKE2b-256 ea0c7790f3d53fa0f218bab788680a911379a56c9b8631decbffce08d7837e11

See more details on using hashes here.

Provenance

The following attestation bundles were made for aiscat-0.68.0-cp312-cp312-musllinux_1_2_x86_64.whl:

Publisher: aiscat-release.yml on jvde-github/AIS-catcher

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

File details

Details for the file aiscat-0.68.0-cp312-cp312-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for aiscat-0.68.0-cp312-cp312-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 dafee5164cc0d581ddf5e1342e28607c72aa29d577e9de0d06b82208c460677d
MD5 f4b22d96772f0a8fa063f8f59c2f4597
BLAKE2b-256 d56952bac51f1dffa1fe23fe7a9094e0ed2d60e335c77e091ae600080b0871a1

See more details on using hashes here.

Provenance

The following attestation bundles were made for aiscat-0.68.0-cp312-cp312-musllinux_1_2_aarch64.whl:

Publisher: aiscat-release.yml on jvde-github/AIS-catcher

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

File details

Details for the file aiscat-0.68.0-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for aiscat-0.68.0-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 4f9a31bf6ab2e8ac03aae20de2200639451bd51aee74a0d70b9b474da0fc8d96
MD5 06f3bc96652e92eb61fb7be4c79371cc
BLAKE2b-256 b90930c248b30d136b30142a9ff91bcae3b3e22943bc9c413e43bbb4b3f3eb60

See more details on using hashes here.

Provenance

The following attestation bundles were made for aiscat-0.68.0-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl:

Publisher: aiscat-release.yml on jvde-github/AIS-catcher

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

File details

Details for the file aiscat-0.68.0-cp312-cp312-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for aiscat-0.68.0-cp312-cp312-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 baa2aebf2f186e0870aaf52fc3fde4ec3938375869d83e0db9d5403eb18defb2
MD5 161ccf11dfc1a2d39af66400c9307005
BLAKE2b-256 bbf51b68d79bef9b62a5a8860442763853cc2f832ba00716f83bdcfbe522e30f

See more details on using hashes here.

Provenance

The following attestation bundles were made for aiscat-0.68.0-cp312-cp312-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl:

Publisher: aiscat-release.yml on jvde-github/AIS-catcher

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

File details

Details for the file aiscat-0.68.0-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for aiscat-0.68.0-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 e685b16ec318a950552647f383e463e61a35f4512a987cd773102ace82fbc0e7
MD5 36bf365aae983a799ca7b8fab7fc9271
BLAKE2b-256 bc562a3d672e61615d6dc515d76443f73f8065f65a1eeb8d3efbbdd2478a7dd9

See more details on using hashes here.

Provenance

The following attestation bundles were made for aiscat-0.68.0-cp312-cp312-macosx_11_0_arm64.whl:

Publisher: aiscat-release.yml on jvde-github/AIS-catcher

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

File details

Details for the file aiscat-0.68.0-cp311-cp311-win_amd64.whl.

File metadata

  • Download URL: aiscat-0.68.0-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 160.9 kB
  • Tags: CPython 3.11, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for aiscat-0.68.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 86139550c5fd934b4b4e7c95f88c1288bd1036118f4c011f32e235a052b57687
MD5 6831f81287ad12f848de85dc8eca9e1c
BLAKE2b-256 1571fa8bdaf492947f9493ae928f9e33f843dd6df945e31c89487326f3f4e610

See more details on using hashes here.

Provenance

The following attestation bundles were made for aiscat-0.68.0-cp311-cp311-win_amd64.whl:

Publisher: aiscat-release.yml on jvde-github/AIS-catcher

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

File details

Details for the file aiscat-0.68.0-cp311-cp311-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for aiscat-0.68.0-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 5ad69188e649841e6fb3fff8aa3e85ebf0011817d358c5e8a6d60108d1559bf9
MD5 397e5018fd6e49b5fabf2b0a60d5e896
BLAKE2b-256 79d8d1cdc2116e083ced456e85a0bddb2877d5fa8f50eac0bb44e687f081d394

See more details on using hashes here.

Provenance

The following attestation bundles were made for aiscat-0.68.0-cp311-cp311-musllinux_1_2_x86_64.whl:

Publisher: aiscat-release.yml on jvde-github/AIS-catcher

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

File details

Details for the file aiscat-0.68.0-cp311-cp311-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for aiscat-0.68.0-cp311-cp311-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 a9f8c516f6c8463567df69812cfa571ef36189623a9c2fc5fc16aa0f18c0e1f1
MD5 c855e177adf6036eec475ecd79e781cc
BLAKE2b-256 cb18def1c1e9f6dad014d85e7e77424b0369230d715c5313f20cf06fbb22e01b

See more details on using hashes here.

Provenance

The following attestation bundles were made for aiscat-0.68.0-cp311-cp311-musllinux_1_2_aarch64.whl:

Publisher: aiscat-release.yml on jvde-github/AIS-catcher

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

File details

Details for the file aiscat-0.68.0-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for aiscat-0.68.0-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 f371efab529f8d71c7601f3e8a28ea8c0bdeb5467c2953bccb054c1c3e30977e
MD5 d8328c0243aaf55c483e4b58f5d1657d
BLAKE2b-256 a17faa96160bcd436ba4376d08319f3511361005a777ba874026f6d41f67f3aa

See more details on using hashes here.

Provenance

The following attestation bundles were made for aiscat-0.68.0-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl:

Publisher: aiscat-release.yml on jvde-github/AIS-catcher

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

File details

Details for the file aiscat-0.68.0-cp311-cp311-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for aiscat-0.68.0-cp311-cp311-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 0bfcfdfd0f92e35f05eaa1435f431967267096c97d36c3f3260885a3aa126ba2
MD5 1fa0fdbbe7513faa6ffe05c8000b9da3
BLAKE2b-256 2ca5a83ec707d3dcfde72371c1979f3f9484d7bc4be9eab61462628c378807b1

See more details on using hashes here.

Provenance

The following attestation bundles were made for aiscat-0.68.0-cp311-cp311-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl:

Publisher: aiscat-release.yml on jvde-github/AIS-catcher

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

File details

Details for the file aiscat-0.68.0-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for aiscat-0.68.0-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 54e2fa446b8062fe21bd669e03043e5bf86c228b7c70b56d47d12d06d828c3c8
MD5 cf37ffdc2ff71f75f1d5ecb6a4347766
BLAKE2b-256 f629104627b05d9e78332bafc7bde033e62d4905bc9cd3b1dfde8764b7cabc94

See more details on using hashes here.

Provenance

The following attestation bundles were made for aiscat-0.68.0-cp311-cp311-macosx_11_0_arm64.whl:

Publisher: aiscat-release.yml on jvde-github/AIS-catcher

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

File details

Details for the file aiscat-0.68.0-cp310-cp310-win_amd64.whl.

File metadata

  • Download URL: aiscat-0.68.0-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 160.9 kB
  • Tags: CPython 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for aiscat-0.68.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 c2aaef380fe30c2d5b193a146e4c28ed833c2ad5bd7b532da9bfc77bb1980fe2
MD5 e66fbf8905e8fbdf06da6c74e32717c0
BLAKE2b-256 512d757ccab24ea7fc22fbdf46cce6f3e90495ebc5b586f8c7268d99bbc492bb

See more details on using hashes here.

Provenance

The following attestation bundles were made for aiscat-0.68.0-cp310-cp310-win_amd64.whl:

Publisher: aiscat-release.yml on jvde-github/AIS-catcher

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

File details

Details for the file aiscat-0.68.0-cp310-cp310-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for aiscat-0.68.0-cp310-cp310-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 aad4c36b4e0867fb1cf1889e0e8ef140381717a0abbaea7b37d2d8502ccf868f
MD5 22a5478eaa9edf18b88a45dbd96e9786
BLAKE2b-256 8e35b133258c530b33af794db7463db218e1337d48c22cf1780ccd0aa28223f6

See more details on using hashes here.

Provenance

The following attestation bundles were made for aiscat-0.68.0-cp310-cp310-musllinux_1_2_x86_64.whl:

Publisher: aiscat-release.yml on jvde-github/AIS-catcher

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

File details

Details for the file aiscat-0.68.0-cp310-cp310-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for aiscat-0.68.0-cp310-cp310-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 4e8512eaaadc43bd3c39a8c24753152216464d722b3b40183f9bbd25a5e6f14e
MD5 fe925e102d56d8f6d609083a2a1f60d5
BLAKE2b-256 a3dba24eed9982289433b61dae361dbcf97cdc6645a815c80861c2949b651e43

See more details on using hashes here.

Provenance

The following attestation bundles were made for aiscat-0.68.0-cp310-cp310-musllinux_1_2_aarch64.whl:

Publisher: aiscat-release.yml on jvde-github/AIS-catcher

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

File details

Details for the file aiscat-0.68.0-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for aiscat-0.68.0-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 4a9bacf45aa4127ef2db865df93f27a81135c04f772a56256cbe95fa154e7d3d
MD5 238477292815e45eef327876f3dc1c19
BLAKE2b-256 130ec46366f24f5588604962001908c16334b28a8e3f3da1074997af13c5d647

See more details on using hashes here.

Provenance

The following attestation bundles were made for aiscat-0.68.0-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl:

Publisher: aiscat-release.yml on jvde-github/AIS-catcher

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

File details

Details for the file aiscat-0.68.0-cp310-cp310-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for aiscat-0.68.0-cp310-cp310-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 0e151a4902b0a0cdc10139a8622c57262ccc5933f123b0494562f27904b88db0
MD5 5ec72048bb43266c42506ae3216d9778
BLAKE2b-256 89f0f6108ca4825ac0874c0ae282b528cec14dfaebd4ffa30af5cb8fa824db9b

See more details on using hashes here.

Provenance

The following attestation bundles were made for aiscat-0.68.0-cp310-cp310-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl:

Publisher: aiscat-release.yml on jvde-github/AIS-catcher

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

File details

Details for the file aiscat-0.68.0-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for aiscat-0.68.0-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 749f8d43f59c5656199487f5e806ea53e66bf3a3204b0809049b2af0a5d00116
MD5 1a8404ccf8856adf7bf680a30285664d
BLAKE2b-256 9192003828c55d4d582617d32affa680bcedd82ae129e73fe5cd5608ebfa5a7b

See more details on using hashes here.

Provenance

The following attestation bundles were made for aiscat-0.68.0-cp310-cp310-macosx_11_0_arm64.whl:

Publisher: aiscat-release.yml on jvde-github/AIS-catcher

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

File details

Details for the file aiscat-0.68.0-cp39-cp39-win_amd64.whl.

File metadata

  • Download URL: aiscat-0.68.0-cp39-cp39-win_amd64.whl
  • Upload date:
  • Size: 160.9 kB
  • Tags: CPython 3.9, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for aiscat-0.68.0-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 c3139bc8c8bdbb4b4d7473b15bcaf5ee389fc82c632d4a6fd6dcd078fafd343a
MD5 ef9564fb87334397ad63f46f1af71bb7
BLAKE2b-256 9e67257fb145884ec3d025a92d2f9dfeeeacfa37a9d3a40b008e26c521c388c2

See more details on using hashes here.

Provenance

The following attestation bundles were made for aiscat-0.68.0-cp39-cp39-win_amd64.whl:

Publisher: aiscat-release.yml on jvde-github/AIS-catcher

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

File details

Details for the file aiscat-0.68.0-cp39-cp39-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for aiscat-0.68.0-cp39-cp39-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 887ef383c9c778ec8d6f2e12a9bf828760a641ae5da1f3ddb5dd8a00819f1a19
MD5 090c7eff23f6efc5baab51b33a324880
BLAKE2b-256 23521eb2d88890e2ac010350a04ed0a6adbbe83e82201dc6d00cad0eca5a9a0a

See more details on using hashes here.

Provenance

The following attestation bundles were made for aiscat-0.68.0-cp39-cp39-musllinux_1_2_x86_64.whl:

Publisher: aiscat-release.yml on jvde-github/AIS-catcher

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

File details

Details for the file aiscat-0.68.0-cp39-cp39-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for aiscat-0.68.0-cp39-cp39-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 e728d2d18b603f984de162f6d86d425f7b2d2157954651afc69f107ddfb6da78
MD5 d9a71d710a243e3eeb7b767aa86b69d7
BLAKE2b-256 832bbf932474749a3eeb098f70c1d3fdc33bdb5cbf62526d4746596493990cd8

See more details on using hashes here.

Provenance

The following attestation bundles were made for aiscat-0.68.0-cp39-cp39-musllinux_1_2_aarch64.whl:

Publisher: aiscat-release.yml on jvde-github/AIS-catcher

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

File details

Details for the file aiscat-0.68.0-cp39-cp39-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for aiscat-0.68.0-cp39-cp39-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 f1329a7b7b9998413a659a89eefd0350f716b7057da7e32013cbe86b25b497ed
MD5 0f6ff8a2deadb07154bff4bc37de41e4
BLAKE2b-256 beda4523c6e2e2c25ba68e0fa7f177d0273a392e7e5349defb66430560f0eb85

See more details on using hashes here.

Provenance

The following attestation bundles were made for aiscat-0.68.0-cp39-cp39-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl:

Publisher: aiscat-release.yml on jvde-github/AIS-catcher

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

File details

Details for the file aiscat-0.68.0-cp39-cp39-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for aiscat-0.68.0-cp39-cp39-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 21161f7d17f32d9ba843415c44889192102dfb5c3789f07b03b8695e50b852ff
MD5 55c94a24ead93b67fc409f24941f662f
BLAKE2b-256 1163665086a817b1106bb6e388b26ec99c405eef188fad1f33f36da4cf87bdf6

See more details on using hashes here.

Provenance

The following attestation bundles were made for aiscat-0.68.0-cp39-cp39-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl:

Publisher: aiscat-release.yml on jvde-github/AIS-catcher

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

File details

Details for the file aiscat-0.68.0-cp39-cp39-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for aiscat-0.68.0-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 50688b4e7da0d93e6302720cd1b6e45f9306432ce81c20d93c5d5e2009ac953f
MD5 f963e5096d129d13a3195fec03c51e51
BLAKE2b-256 63b8bcf03e17d265c09ca5d5b99cc3b59894ad87e5e658c453832d1ede7b9b4f

See more details on using hashes here.

Provenance

The following attestation bundles were made for aiscat-0.68.0-cp39-cp39-macosx_11_0_arm64.whl:

Publisher: aiscat-release.yml on jvde-github/AIS-catcher

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