gpsd is a service daemon that monitors one or more GPSes attached to a host computer through serial or USB ports, making all data on the location/course/velocity of the sensors available to be queried on TCP port 2947 of the host computer. With gpsd, multiple GPS client applications (such as navigational and wardriving software) can share access to GPSes without contention or loss of data. Also, gpsd responds to queries with a format that is substantially easier to parse than the NMEA 0183 emitted by most GPSes. The gpsd distribution includes a linkable C service library, a C++ wrapper class, and a Python module that developers of gpsd-aware applications can use to encapsulate all communication with gpsd.
Besides gpsd itself, the project provides auxiliary tools for diagnostic monitoring and profiling of GPSes and feeding GPS-aware applications specified track data for diagnostic purposes.
The goal of the gpsd project is to create a solid layer of open-source infrastructure for programs running under Linux and other open-source Unixes that want to be location-sensitive. We aim for simple, robust interfaces, unfussy operation, and an easy learning curve for application developers. Applications that presently use gpsd include pyGPS, Kismet, GPSdrive, gpeGPS, position, roadmap, roadnav, navit, viking, and gaia.