Quick Share for Raspberry Pi OS ARM64, built and tested on real Pi hardware.
Hardware target: Raspberry Pi OS 64-bit on ARM64. Support is claimed only after local Pi build/run testing.
RQuickShare Pi is a Raspberry Pi-focused fork of RQuickShare, the open-source Nearby Share / Quick Share desktop app.
This fork exists because Raspberry Pi support needs real ARM64 testing, native Linux desktop dependencies, Bluetooth, mDNS, WebKitGTK, and patience. A GitHub Actions build on x86_64 does not prove anything here. This repo is for the real Pi target.
Current target:
- π§ Device: Raspberry Pi 5
- π§ OS: Raspberry Pi OS 64-bit / Debian Bookworm
- ποΈ Architecture:
aarch64 - π¦ App stack: Tauri 2 + Vue 3 + Rust core library
- π‘ Discovery stack: mDNS + Bluetooth advertisement
The app has been built and started on a real Raspberry Pi 5.
Verified locally on the Pi:
- β
core_libtests pass - β
core_libbuilds - β Tauri app checks
- β Debian debug bundle builds
- β
App starts and reaches
RunEvent::Ready - β TCP listener starts
- β mDNS publishes a resolvable Quick Share service on the active LAN address
- β BLE listener starts
- β BLE visibility follows the app visibility state
Known rough edges:
β οΈ Full Tauritargets = "all"bundling can stall on non-Debian package formats. Use the Debian bundle while Pi support is being stabilized.β οΈ Vue devtools Electron sidecar crashes on this Pi setup, sopnpm devintentionally runs Tauri directly.β οΈ Raspberry Pi support is experimental until repeated send/receive testing is complete.
This project is based on the excellent upstream work by Martin ANDRE:
https://github.com/Martichou/rquickshare
The goal is for this fork to become its own Pi-first project while keeping the upstream license, credits, copyright notices, and project history intact.
Guardrails for this repo:
- π‘οΈ
originisEladBG-code/rquickshare-pi - π
upstreamis fetch-only locally; pushing to upstream is disabled - π upstream changes should be reviewed and merged intentionally
- π§ this fork should not be blindly overwritten by the main RQuickShare project
Install the latest public ARM64 release:
curl -fsSL https://eladbg-code.github.io/rquickshare-pi/install.sh | bashThis downloads the newest Raspberry Pi ARM64 .deb from GitHub Releases and
installs it with apt. A real APT repository is not published yet, so
sudo apt install rquickshare-pi is not available directly.
Fast path:
./install-rquickshare-pi.shThe installer checks that it is running on ARM64, installs Pi dependencies,
enables Bluetooth and Avahi, installs Rust/Node/pnpm if needed, builds the
project, installs the .deb, and leaves the app available from the Accessories
menu.
Manual path:
Install system dependencies:
sudo apt update
sudo apt install -y \
git \
curl \
build-essential \
pkg-config \
libssl-dev \
protobuf-compiler \
libprotobuf-dev \
libdbus-1-dev \
libgtk-3-dev \
libayatana-appindicator3-dev \
librsvg2-dev \
libsoup-3.0-dev \
libjavascriptcoregtk-4.1-dev \
libwebkit2gtk-4.1-dev \
bluez \
avahi-daemon \
avahi-utils \
libavahi-client-devEnable runtime services:
sudo systemctl enable --now bluetooth
sudo systemctl enable --now avahi-daemonInstall Rust:
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
. "$HOME/.cargo/env"
rustup toolchain install stable
rustup toolchain install nightly
rustup default stableInstall Node.js 20 and pnpm 9.7.0:
curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash -
sudo apt install -y nodejs
sudo corepack enable
corepack prepare pnpm@9.7.0 --activateClone and build:
git clone git@github.com:EladBG-code/rquickshare-pi.git
cd rquickshare-pi
git switch pi-arm64-supportcd core_lib
cargo test
cargo buildcd ../app/main
pnpm install --frozen-lockfile
pnpm check
pnpm tauri build -d --bundles debThe Debian bundle is written under:
app/main/src-tauri/target/debug/bundle/deb/
For development:
cd app/main
WEBKIT_DISABLE_COMPOSITING_MODE=1 RUST_BACKTRACE=1 RUST_LOG=debug pnpm devFor the built debug binary:
WEBKIT_DISABLE_COMPOSITING_MODE=1 RUST_BACKTRACE=1 RUST_LOG=debug \
./app/main/src-tauri/target/debug/rquickshare-piIf discovery is acting strange, check the Pi services:
bluetoothctl show
rfkill list bluetooth
systemctl status bluetooth --no-pager
systemctl status avahi-daemon --no-pager
ip addrSettings on Linux:
~/.local/share/dev.eladbg.rquickshare-pi/.settings.json
Main app:
app/main
Rust core:
core_lib
Canonical logo source:
app/main/src-tauri/icons/rquickshare-pi.svg
Real support means testing on the Pi, not just compiling somewhere else.
Useful commands:
uname -m
cat /etc/os-release
rustc -Vv
cargo -V
node -v
pnpm -v
protoc --versionExpected architecture:
aarch64
More detailed build notes live in:
PI_BUILD_NOTES.md
If a Samsung phone opens Quick Share and immediately drops/disconnects Wi-Fi, turn off Samsung's Apple-device compatibility mode:
Settings > Connected devices > Quick Share > Share with Apple devices > Off
Why this matters:
- Android Quick Share discovers nearby devices with Bluetooth, then transfers over a direct local Wi-Fi connection.
- This fork currently supports the Wi-Fi LAN / mDNS Quick Share path.
- Samsung's Apple compatibility mode can push the phone into a different sharing path, which prevents the phone from seeing this Pi receiver.
After disabling that option, keep Bluetooth and Wi-Fi enabled, keep the phone and Pi nearby, then reopen the Android share sheet and choose Quick Share.
References:
The installed Debian release applies the Raspberry Pi WebKitGTK compositor workaround automatically before the Tauri webview starts. This fixes the Pi window corruption issue where the first visible frame could appear as horizontal stripes until manually resized.
If you are running from source or debugging manually, keep the environment variable in your command:
WEBKIT_DISABLE_COMPOSITING_MODE=1 pnpm devNeed a static firewall port:
vim ~/.local/share/dev.eladbg.rquickshare-pi/.settings.jsonExample:
{
"port": 12345
}App stays alive after closing the window:
ps aux | grep rquickshare-piThat can be normal if the tray process is still running.
This project keeps the upstream license:
GPL-3.0
RQuickShare Pi includes modifications by EladBG-code. Original RQuickShare copyrights, author notices, license terms, and project history remain intact.
Additional legal and trademark notices are in LEGAL_NOTICE.md.
RQuickShare Pi would not exist without the upstream project and the wider open source Nearby Share ecosystem:
- https://github.com/Martichou/rquickshare
- https://github.com/grishka/NearDrop
- https://github.com/vicr123/QNearbyShare
This fork starts as Raspberry Pi compatibility work, but it is intended to grow into a Pi-first app with its own identity, release flow, and hardware-tested support story.