--- id: pynmeagps version: "1.1.7" license: BSD-3-Clause license_treatment: permissive maintenance: active --- # pynmeagps — NMEA protocol parser and generator License: permissive · Maintenance: active · Downloads: 381.7K/mo ## What it is and what it does pynmeagps is a Python 3 parser for NMEA 0183 protocol messages, primarily targeting GNSS/GPS and maritime receivers. It reads, parses, and generates NMEA messages with no external runtime dependencies, making it lightweight and straightforward to integrate into applications that need to consume positioning data from GPS hardware or log files. The library handles both standard and proprietary NMEA message types, with support for user-defined message definitions for custom applications. It provides stream-based reading (from serial ports, files, or sockets), static parsing of individual messages, and message generation. Latitude and longitude are exposed as signed decimal values for convenience, with helper methods to convert to other formats. The package is actively maintained, supports modern Python versions (3.10–3.14), and carries no external dependencies. Use it for: - Read real-time GPS coordinates from a stream-connected receiver for vehicle tracking or navigation applications. - Parse NMEA log files to extract historical positioning data for analysis or replay. - Integrate GNSS message handling into maritime or drone control systems that need to decode receiver output. - Validate and transform NMEA messages between different formats or protocols in data pipelines. - Develop custom GPS applications with support for proprietary receiver extensions via user-defined message definitions. ## Worth the install? AI-flagged interpretation of the facts above — verify before relying. Parses and generates NMEA 0183 GPS/GNSS protocol messages, enabling Python applications to read and work with positioning data from GPS receivers and maritime devices. Yes. The package is actively maintained, has zero known vulnerabilities, low install friction, and a permissive license. It solves a specific, well-defined problem (NMEA parsing) with no external dependencies. Install it if you need to work with GPS/GNSS protocol data in Python; skip it only if you need support for Python versions below 3.10 or have no use for NMEA message handling. ## Install pip install pynmeagps uv add pynmeagps poetry add pynmeagps ## Installing pynmeagps Before you install: Low friction installation with no runtime dependencies. Active maintenance with a recent release (4 days old) and steady repository activity. Supports Python 3.10 through 3.14. License in practice: BSD-3-Clause permissive license allows commercial and private use with minimal restrictions; attribution required. Quickstart: from pynmeagps import NMEAReader msg = NMEAReader.parse('$GNGLL,5327.04319,S,00214.41396,E,223232.00,A,A*68\r\n') print(msg) Requires Python >=3.10; stream-based reading requires a data source supporting read(n) -> bytes method. Verify before relying: - Whether the package handles all NMEA 0183 v4 message types or only a documented subset beyond GNSS/GPS. - Performance characteristics when parsing high-frequency streams from multiple concurrent receivers. - Availability and completeness of proprietary NMEA message definitions mentioned in the documentation. ## Package facts - License: BSD-3-Clause (permissive) - Python support: supports_current - Install friction: low - Maintenance: active - Downloads: 381.7K/month (top 15,000 on PyPI) - Known vulnerabilities: none known ## Tags NMEA GPS parser, GNSS message parsing, GPS protocol decoder, NMEA 0183 reader, satellite positioning data, maritime GPS protocol, location data extraction, gps-gnss, protocol-parsing, geolocation [View on SkillFed](https://skillfed.io/packages/pynmeagps) · [View on PyPI](https://pypi.org/project/pynmeagps/)