LanSend is a Tauri v2 desktop application for local network file transfer. It uses a Vue 3 + TypeScript frontend and a Rust backend.
- Show local IPv6, IPv4, and device alias on the main screen
- Save LAN devices by IPv4 or IPv6 address
- Probe saved devices manually or on an automatic interval
- Drag files into the drop zone and send them to an online saved device
- Require the receiver to accept an incoming transfer before upload starts
- Configure alias, listening port, save folder, and refresh interval
Install these first:
- Node.js
- pnpm
- Rust toolchain with Cargo
Install the native libraries required by Tauri and WebKitGTK. On Ubuntu, use the package names recommended by the current Tauri v2 Linux setup guide for your distribution version.
You also need the ip command if you want LanSend to prefer stable IPv6 addresses on Linux. It is usually provided by the iproute2 package.
From the project root:
pnpm installFrom the project root:
pnpm tauri devThis starts the Vite frontend and launches the Tauri desktop window.
If Tauri capabilities or native plugins were changed, fully restart the dev command instead of relying on hot reload.
To type-check and build the web frontend:
pnpm buildThe frontend output is written to dist/.
To check the Rust backend without creating an installer:
cargo check --manifest-path src-tauri/Cargo.tomlTo build release packages for the current operating system:
pnpm tauri buildThe generated bundles are written under src-tauri/target/release/bundle/.
Build packages on each target platform when you need platform-native artifacts:
- Windows: build on Windows for Windows installers
- macOS: build on macOS for macOS app bundles or disk images
- Linux: build on Linux for Linux packages
- Start two LanSend instances on devices in the same local network.
- Confirm each device shows a reachable IPv4 or IPv6 address.
- Use Add Device to save the other device address and port.
- Click Refresh or wait for automatic refresh until the device appears online.
- Drag one or more files into the drop zone.
- Click the online saved device.
- Confirm sending on the sender side.
- Accept the incoming transfer on the receiver side.
Received files are saved to the configured save folder.
Open Settings in the app to configure:
- Alias: local display name. Chinese characters, English letters, and numbers are supported.
- Default Port: local listening port and default port for new saved devices.
- Save Folder: destination folder for received files.
- Auto Refresh Interval: how often saved devices are probed automatically, in seconds.
pnpm install # install frontend dependencies
pnpm tauri dev # start the desktop app in development mode
pnpm build # type-check and build the frontend
pnpm tauri build # build release desktop bundles