{"id":17120610,"url":"https://github.com/zeenix/gps-share","last_synced_at":"2025-05-08T21:20:20.260Z","repository":{"id":51288962,"uuid":"84842778","full_name":"zeenix/gps-share","owner":"zeenix","description":"Utility to share your GPS device on local network","archived":false,"fork":false,"pushed_at":"2024-03-19T22:53:47.000Z","size":1669,"stargazers_count":70,"open_issues_count":2,"forks_count":9,"subscribers_count":5,"default_branch":"master","last_synced_at":"2025-04-11T18:17:45.937Z","etag":null,"topics":["avahi","gps","location","network"],"latest_commit_sha":null,"homepage":null,"language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/zeenix.png","metadata":{"files":{"readme":"README.md","changelog":"NEWS","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2017-03-13T15:28:26.000Z","updated_at":"2024-12-28T01:39:48.000Z","dependencies_parsed_at":"2024-10-31T15:12:16.663Z","dependency_job_id":null,"html_url":"https://github.com/zeenix/gps-share","commit_stats":{"total_commits":129,"total_committers":12,"mean_commits":10.75,"dds":0.3178294573643411,"last_synced_commit":"2b3955549643ae99ebe0681079d6fa1deaee20ea"},"previous_names":[],"tags_count":4,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zeenix%2Fgps-share","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zeenix%2Fgps-share/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zeenix%2Fgps-share/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zeenix%2Fgps-share/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/zeenix","download_url":"https://codeload.github.com/zeenix/gps-share/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253149946,"owners_count":21861800,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["avahi","gps","location","network"],"created_at":"2024-10-14T18:00:25.260Z","updated_at":"2025-05-08T21:20:20.216Z","avatar_url":"https://github.com/zeenix.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# gps-share\n\nUtility to share your GPS device on local network.\n\nGit master build status: [![Build Status](https://travis-ci.org/zeenix/gps-share.svg?branch=master)](https://travis-ci.org/zeenix/gps-share)\n\n## Goals\n\ngps-share has the following goals:\n\n* Share your GPS device on the local network so that all machines in your home\n  or office can make use of it.\n* Enable support for standalone (i-e not part of a cellular modem) GPS devices\n  in Geoclue. Since Geoclue has been able to make use of network NMEA sources\n  since 2015, gps-share works out of the box with Geoclue.\n* Enable multiple applications to share the GPS stream on the same machine.\n\nThe latter means that it is a replacement for\n[GPSD](https://en.wikipedia.org/wiki/Gpsd) and\n[Gypsy](https://gypsy.freedesktop.org/wiki/). While [\"why not GPSD?\" has already\nbeen documented](https://gypsy.freedesktop.org/why-not-gpsd.html), Gypsy has\nbeen unmaintained for many years now. I did not feel like reviving a dead\nproject and I really wanted to code in Rust so I decided to create gps-share.\n\n![Screenshot of gps-share in action](data/screenshot.png \"Screenshot of GNOME\nMaps using gps-share on the fast train from Gothenburg to Stockholm\")\n\n## Dependencies\n\nThe developers use the latest rustc release and if you use an older version of\nthe compiler, you may encounter issues. While cargo manages the Rust crates\ngps-share depend on, you'll also need the following on your host:\n\n* libudev\n\n## Supported devices\n\ngps-share currently only supports GPS devices that present themselves as serial\nport (RS232). Many USB are expected to work out of the box but bluetooth devices\nneed manual intervention to be mounted as serial port devices through rfcomm\ncommand. The following command worked on my Fedora 25 machine for a TomTom\nWireless GPS MkII.\n\n    sudo rfcomm connect 0 00:0D:B5:70:54:75\n\ngps-share can autodetect the device to use if it's already mounted as a serial\nport but it assumes a baudrate of 38400. You can manually set the device node to\nuse by passing the device node path as argument and set the baudrate using the\n'-b' commandline option. For example for the TomTom Wireless GPS MkII device,\nyou'll nee to set the baudrate to 115200.\n\nPass '--help' for a full list of supported commandline options.\n\n## Permisions\n\ngps-share will need read and write access to device nodes. Adding your user to\n'dialout' group gives you this access for USB devices on Fedora hosts but it is\nnot the case for the /dev/rfcomm0 device created by the above mentioned command.\nFor those devices, you'll either need to run gps-share as root or set permission\non /dev/rfcomm0.\n\n## Supported operating systems\n\ngps-share is targetted specifically for Linux. It may or may not work on other\nPOSIX hosts. Patches to add/fix support for non-Linux systems, are more than\nwelcome.\n\nRemember to configure your firewall to allow your service to be reachable on the\nlocal network, as needed.\n\n## Building from source\n\nJust like most Rust projects, gps-share uses cargo build system so building is\nas simple as:\n\n    cargo build\n\nOnce built, binary is in `target/debug/gps-share`. If you want to build\ngps-share for production use, with all optimizations:\n\n    cargo build --release\n\nwhich puts the binary in `target/release/gps-share`. You can also run the binary\ndirectly (without building first):\n\n    cargo run\n\nIf you need to pass any arguments or options to the commandline, you do:\n\n    cargo run -- [ARGUMENT1 [ARGUMENT2 [..]]]\n\nTo see all supported options and arguments, run:\n\n    cargo run -- --help\n\n## Command-line usage\n\nThe general call to gps-share is the following:\n\n    gps-share [FLAGS] [OPTIONS] [device]\n\nThe `device` is either the path to the relevant GNSS device, of `-` for standard input.\n\n### Options\n\n- `-b, --baudrate \u003cBAUDRATE\u003e` Baudrate to use for communication with GPS device\n- `-n, --network-interface \u003cINTERFACE\u003e` Place the listening TCP socket on specific network interface (default: all)\n- `-p, --port \u003cPORT\u003e` Port to run TCP service on (default: 10110)\n- `-s, --socket-path \u003cSOCKET\u003e` Listen on a local socket with the specified path (default: don't listen on a local socket)\n\n### Flags\n\n- `-a, --disable-announce` Disable announcing through Avahi\n- `-h, --help` Prints help information\n- `-x, --no-tcp` Don't listen on TCP sockets at all\n- `-V, --version` Prints version information\n\n## Testing\n\nThe test suite includes end-to-end tests. They share sockets, and should be run in a serial manner:\n\n    cargo test\n\n## License\n\ngps-share is licensed under GNU GPLv2+. Please refer to [LICENCE file](LICENSE)\nfor details.\n\n## Hardware donations\n\nIf you'd like some particular devices supported by gps-share, I do accept hardware\ndonations. Please contact through email (on my github profile \u0026 git commits) to\nrequest my postal address to send the hardware to. If you can send through DHL,\nuse the following address:\n\nDHL customer: 904 538 947\nDHL Packstation 179\nGermany\n\n*PLEASE NOTE:* This address only works if you send through DHL.\n\nThanks.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzeenix%2Fgps-share","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fzeenix%2Fgps-share","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzeenix%2Fgps-share/lists"}