2026-01-21 02:34:50 +00:00
2026-03-07 11:16:34 +05:30
2026-01-14 15:51:44 -05:00
2026-03-03 05:51:36 +05:30
2026-03-06 21:20:59 +05:30
2026-01-21 03:16:20 +00:00
2026-01-14 16:55:05 -05:00
2026-03-01 13:44:09 +05:30
2023-03-14 00:11:18 -07:00
2026-01-21 03:28:37 +00:00
2026-03-06 21:21:57 +05:30
2026-03-03 05:51:36 +05:30
2026-03-07 17:46:42 +05:30
2024-03-14 11:09:36 -07:00

Google Nearby Sharing & Connections for Linux (Unofficial)

P2P file sharing, discovery, and connectivity on Linux using Google Nearby protocols.

Demo

https://github.com/user-attachments/assets/048afa1e-40a4-4351-a859-c81b642fc6e3

This is an unofficial Linux-focused fork of Nearby.

Purpose

The primary goal of this repository is to provide reusable Linux libraries/APIs for Nearby.

Nearby Share sample applications are included and will continue to be supported, but they are examples first and library integration is the main long-term target.

Documentation

Technical deep dives are being moved to the project wiki so this README can stay focused on setup and status.

Requirements

To run this project on Linux, you need:

  • BlueZ 5.86 or higher
  • NetworkManager
  • Avahi
  • Qt (required for the tray UI app)

Installation (End Users)

  1. Download the latest release archive from the Releases page.
  1. Extract it:
tar -xzf nearby-file-share-linux-*.tar.gz
  1. Install the application, shared library, and launcher: (run this from the extracted bundle directory)
./install_nearby_file_share.sh

This installs to ~/.local by default.

For system-wide installation:

./install_nearby_file_share.sh --system

The installer also installs:

  • nearby_qml_file_tray_app
  • libnearby_sharing_api_shared.so
  • .desktop launcher entry
  • launcher icon

Build From Source

Build and install the Linux Nearby Sharing library:

./sharing/linux/install_nearby_sharing_service.sh

Build tray sample app:

cd sharing/linux/qml_tray_app
cmake -S . -B build -DCMAKE_BUILD_TYPE=Release -DNEARBY_PREFIX=/usr/local
cmake --build build -j
./build/nearby_qml_file_tray_app

Current Status and Compatibility

The Linux implementation currently works with the reverse-engineered certificate manager used in this project.

Compatibility can still break if Google changes certificate manager behavior or protocol details. That component is closed source, so upstream regressions may be hard to diagnose immediately.

Test Scope and Known Limits

  • Single-file sharing has been tested.
  • Multi-transfer behavior in one app lifetime has not been fully validated.
  • Current practical testing often restarts the app before a new transfer.

In this project, a "session" means one application lifetime (start to exit).

After one transfer, some endpoints/internal state can reset or change, and this is still being investigated.

Known Issues

  • Linux hotspot startup can be slow.
  • Connecting to another device's hotspot can be slow on Linux.
  • Android-initiated connection formation can be very slow.

A likely area to investigate is connection negotiation paths that Linux may not handle optimally yet.

Wi-Fi Direct

Wi-Fi Direct is theoretically possible, but not implemented yet.

Reason: NetworkManager does not natively support the Wi-Fi Direct Group Owner flow required here.

Contributing

  • General: CONTRIBUTING.md
  • Linux-specific: LINUX_CONTRIBUTING.md

License

Released under LICENSE.

Languages
C++ 97.6%
Objective-C 1.1%
Objective-C++ 0.6%
Starlark 0.3%
C 0.2%
Other 0.1%