pyais
AIS message decoding
Decision gist · record as of 2026-08-14
Yes. pyais is actively maintained, has no known vulnerabilities, installs with minimal friction, and is licensed permissively. Install it if you need to work with AIS maritime data—whether decoding live feeds, analyzing historical logs, or building maritime monitoring tools.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- Requires Python 3.9 or later.
- Low friction install with a single runtime dependency (attrs).
- Actively maintained with a release 5 days old and 253 repository stars.
License · maintenance · safety
permissive license (permissive) — MIT License permits unrestricted use, modification, and distribution with only attribution and liability disclaimer required—suitable for commercial and proprietary projects.
last release 2026-08-09 (5 days) · last repo commit 2026-08-09 · 253 stars
0 known vulnerabilities (OSV.dev, 2026-08-14) · 147,411 downloads/mo, #11,066 on PyPI
Alternatives
Verify before relying
from pyais import decode
decoded = decode(b"!AIVDM,1,1,,B,15NG6V0P01G?cFhE`R2IU?wn28R>,0*05")
print(decoded)- Whether the package's performance characteristics (e.g., throughput for high-volume streams) meet specific maritime monitoring workloads.
- Compatibility with non-standard or proprietary AIS message variants beyond the AIVDM/AIVDO formats documented.
What it is and what it does
pyais is a pure-Python library for decoding and encoding AIS messages—the digital protocol ships use to broadcast identification, position, course, and speed via VHF radio. AIS data arrives as NMEA 0183 sentences and is transmitted in six-bit ASCII encoding; pyais handles the parsing and reconstruction of that binary payload into structured vessel information. The library supports single messages, multipart messages, file streams, and live TCP/UDP socket feeds, making it suitable for both offline analysis and real-time maritime monitoring.
The package is production-ready, having been tested against live feeds from Spire, the Norwegian Coastal Administration, and other real-world sources. It includes utilities for reading files, iterating over message streams, and a TCP server for concurrent client connections. Encoding is also supported, allowing you to construct AIS sentences from dictionaries of vessel data. The single runtime dependency is attrs, and installation is straightforward.
Use it for
- Decode live AIS feeds from maritime authorities or satellite operators to track vessel positions and movements in real time.
- Parse historical AIS message logs from files to analyze shipping patterns, port traffic, or vessel behavior.
- Build a TCP server that aggregates AIS data from multiple client connections for centralized maritime monitoring.
- Encode vessel information into AIS sentences for simulation, testing, or custom maritime data systems.
- Extract structured vessel metadata (MMSI, callsign, position, speed, course) from raw NMEA radio broadcasts.
Worth the install?
AI-flagged interpretation of the facts on this page. Verify before relying on it.
Yes.
pyais is actively maintained, has no known vulnerabilities, installs with minimal friction, and is licensed permissively. Install it if you need to work with AIS maritime data—whether decoding live feeds, analyzing historical logs, or building maritime monitoring tools.
Install
pyais on PyPI
Before you install
Low friction install with a single runtime dependency (attrs). Actively maintained with a release 5 days old and 253 repository stars. Officially supports Python 3.9 and later.
Requires Python 3.9 or later.
License in practice
MIT License permits unrestricted use, modification, and distribution with only attribution and liability disclaimer required—suitable for commercial and proprietary projects.
Quickstart
from pyais import decode
decoded = decode(b"!AIVDM,1,1,,B,15NG6V0P01G?cFhE`R2IU?wn28R>,0*05")
print(decoded)
Verify before relying
- Whether the package's performance characteristics (e.g., throughput for high-volume streams) meet specific maritime monitoring workloads.
- Compatibility with non-standard or proprietary AIS message variants beyond the AIVDM/AIVDO formats documented.
Package facts
| License | permissive license permissive |
| Python support | Supports the current Python release >=3.9 |
| Install friction | Low. Pure-Python wheel |
| Runtime dependencies | 1 packageattrs |
| Maintenance | Actively maintained 5 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 147,411 / month, #11,066 on PyPI 30-day window, as of 2026-08-14 |
| Known vulnerabilities | None known OSV.dev, checked 2026-08-14 |
| Classifiers | Development Status :: 5 - Production/StableIntended Audience :: DevelopersLicense :: OSI Approved :: MIT LicenseOperating System :: OS IndependentProgramming Language :: Python :: 3Programming Language :: Python :: 3 :: OnlyProgramming Language :: Python :: 3.10Programming Language :: Python :: 3.11Programming Language :: Python :: 3.12Programming Language :: Python :: 3.13Programming Language :: Python :: 3.9Topic :: CommunicationsTopic :: System :: NetworkingTyping :: Typed |
Evidence: pyais-3.2.1-py3-none-any.whl
Tags
Let your AI agent find packages like this
Example. Real query, live index.
You found this page by searching. An agent finds it by wishing: SkillFed indexes 14,416 PyPI packages by what they can do, searchable in plain language.
wish › “AIS message decoding”
- pyaisDecodes and encodes AIS (Automatic Identification System) messages…
- cantoolsCantools parses automotive CAN bus database files (DBC, KCD, SYM,…
- tnefparseDecodes Microsoft's Transport Neutral Encapsulation Format (TNEF) and…
Give your agent the search over MCP, or paste the wish link into any chat.
More Networking packages
h11 is a pure-Python HTTP/1.1 protocol implementation that handles parsing and serializing HTTP messages without any built-in I/O, letting you integrate it with any network layer you choose.
psutil retrieves real-time information about running processes and system resources (CPU, memory, disks, network, sensors) across multiple operating systems, enabling system monitoring, process profiling, and resource management.
pyOpenSSL wraps OpenSSL's SSL/TLS functionality for Python, providing high-level connection objects and certificate handling through a Python-friendly interface around OpenSSL's cryptographic operations.
uvloop is a drop-in replacement for Python's built-in asyncio event loop, implemented in Cython and using libuv, that accelerates async I/O operations.
execnet lets you spawn and communicate with Python interpreters across local processes, remote hosts, and different platforms, using a simple API for task distribution and inter-process messaging.
However, the aging maintenance status (275 days since last release) means you should verify it meets your concurrency and performance needs before committing to a…
PyZMQ provides Python bindings for ZeroMQ (ØMQ), a lightweight messaging library that enables fast, asynchronous communication between distributed processes and applications.
See also pynmea2 · pynmeagps · rf-protocols · x690 · pyubx2 · py-multibase · pylzss · pyheif · pyrtcm · pyiso8583