{"id":17334028,"url":"https://github.com/teaishealthy/pyquickshare","last_synced_at":"2025-09-11T22:33:05.967Z","repository":{"id":239205823,"uuid":"798860695","full_name":"teaishealthy/pyquickshare","owner":"teaishealthy","description":"Quick Share for Linux 🐧","archived":false,"fork":false,"pushed_at":"2025-02-27T15:11:10.000Z","size":407,"stargazers_count":7,"open_issues_count":0,"forks_count":3,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-08-19T00:31:33.526Z","etag":null,"topics":["android","file-transfer","linux","nearbyshare","python","quickshare"],"latest_commit_sha":null,"homepage":"https://pyq.teaishealthy.me","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/teaishealthy.png","metadata":{"files":{"readme":"README.md","changelog":null,"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,"zenodo":null}},"created_at":"2024-05-10T16:16:16.000Z","updated_at":"2025-07-21T03:43:35.000Z","dependencies_parsed_at":"2024-05-13T20:25:26.357Z","dependency_job_id":"b6a67d32-d176-4434-a788-f955edc50cb7","html_url":"https://github.com/teaishealthy/pyquickshare","commit_stats":null,"previous_names":["teaishealthy/pyquickshare"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/teaishealthy/pyquickshare","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/teaishealthy%2Fpyquickshare","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/teaishealthy%2Fpyquickshare/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/teaishealthy%2Fpyquickshare/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/teaishealthy%2Fpyquickshare/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/teaishealthy","download_url":"https://codeload.github.com/teaishealthy/pyquickshare/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/teaishealthy%2Fpyquickshare/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":274718124,"owners_count":25337054,"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","status":"online","status_checked_at":"2025-09-11T02:00:13.660Z","response_time":74,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["android","file-transfer","linux","nearbyshare","python","quickshare"],"created_at":"2024-10-15T15:04:29.705Z","updated_at":"2025-09-11T22:33:05.945Z","avatar_url":"https://github.com/teaishealthy.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# pyquickshare\n\n![Ruff logo](https://img.shields.io/endpoint?url=https%3A%2F%2Fteaishealthy.me%2Fv2.json\u0026style=flat-square)\n![GitHub Actions Workflow Status](https://img.shields.io/github/actions/workflow/status/teaishealthy/pyquickshare/ruff.yml?style=flat-square\u0026label=lint+and+format)\n![GitHub Actions Workflow Status](https://img.shields.io/github/actions/workflow/status/teaishealthy/pyquickshare/test.yml?style=flat-square\u0026label=tests)\n![Coveralls](https://img.shields.io/coverallsCoverage/github/teaishealthy/pyquickshare?style=flat-square)\n\n\nAn implementation of Quick Share in Python.\n\n## System requirements\n\npyquickshare has following expectations from the system:\n- some mDNS implementation (avahi, systemd-resolved, etc.)\n- Bluetooth stack using BlueZ reachable via D-Bus\n\nAs these are de-facto standards on Linux, pyquickshare should work on most Linux distributions.\n\n### Firewalls\n\nAs Quick Share uses a direct connection between devices, it is necessary to allow incoming connections on the advertised port. firewalld is supported out of the box (but not required).\n\npyquickshare temporarily reconfigures `firewalld` (if available) to accept an incoming connection on it's advertised port.\nThis is done by adding a temporary rule to the currently \"active\" zone.\nThis rule is automatically removed by `firewalld` after 5 minutes.\n\nCommunication with `firewalld` is done over D-Bus, `polkit` may prompt for authentication.\n\n## Installation\n\n```bash\npip install git+https://github.com/teaishealthy/pyquickshare\n```\n\n## Features\n\nReceive is fully implemented, namely WiFi credentials, files, and text. Sending only supports files, but support for sending text and WiFi credentials is planned.\n\n### Transfer\nOnly LAN/Wifi is supported at the moment, but Bluetooth is planned.\n\n### Discovery\npyquickshare uses mDNS to discover other devices on the local network. BLE is only used to trigger advertisment at the moment.\n\n## Usage\n\n**example.py** is a basic example of how to use pyquickshare.\nIt provides a command line interface to send and receive files using Quick Share:\n\n```bash\nuv run example.py receive\n```\n\n```bash\nuv run example.py send \u003cfile\u003e\n```\n\n\n## Notes and Acknowledgements\n\nThe code in [`pyquickshare/protos`](https://github.com/teaishealthy/pyquickshare/blob/main/pyquickshare/protos/) is generated from protobuf sources licensed under Apache 2.0.\nAs a derivative work, these generated files remain under the original Apache 2.0 license.\nA copy of the original license can be found in the [`pyquickshare/protos`](https://github.com/teaishealthy/pyquickshare/blob/main/pyquickshare/protos/) directory.\n\n\nThis project would not have been possible without the amazing reverse engineering work done by [grishka](https://github.com/grishka/) on the Quick Share protocol.\nCheck out [NearDrop](https://github.com/grishka/NearDrop/), a similar project for Mac OS.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fteaishealthy%2Fpyquickshare","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fteaishealthy%2Fpyquickshare","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fteaishealthy%2Fpyquickshare/lists"}