Unishare is a powerful Tauri application built with Rust that enables seamless offline file sharing between macOS and Windows devices. It bridges the gap between Apple's AirDrop and Windows' Nearby Share with a universal solution that works across platforms, without requiring devices to be on the same Wi-Fi network.
- 🖥️ Cross-Platform: Share files between macOS and Windows seamlessly
- 🔌 Works Offline: Transfer files without an internet connection
- 🌐 Multiple Connection Methods: Automatically selects the optimal connection method
- 🔒 Security-Focused: Optional Midnight blockchain integration for enhanced security and data integrity
- 🎯 User-Friendly: Simple drag-and-drop interface
- ⚡ Fast Transfers: Optimized for speed with direct device-to-device connections
Unishare intelligently selects the best available connection method in this priority order:
- Wi-Fi Direct - For nearby devices, even without internet (Best Case)
- WebRTC - When both devices have internet access (Alternative 1)
- Bluetooth - For close-range sharing when Wi-Fi isn't available (Alternative 2)
- Mobile Data - As a fallback option when other methods fail (Last Resort)
flowchart TD
A([Start File Transfer Request]) --> B{Device Support Check}
B -->|Best Case| C[Wi-Fi Direct]
B -->|Alternative 1| D[WebRTC]
B -->|Alternative 2| E[Bluetooth]
B -->|Last Resort| F[Mobile Data]
subgraph CONNECTION METHODS
C
D
E
F
end
C & D & E & F --> G{Connection Established?}
G -->|Yes| H[File Transfer Initiated]
G -->|No| I[Try Next Available Method]
I --> G
H --> J[Compute File Hash]
J --> K[Midnight Blockchain Integration]
subgraph MIDNIGHT BLOCKCHAIN SECURITY LAYER
K --> L[Log Transfer Details to Blockchain]
L --> M[Store File Hash for Integrity]
L --> N[Manage Encryption Keys]
L --> O[Verify Device/User Authentication]
end
M & N & O --> P[Transfer in Progress]
P --> Q[Transfer Complete]
Q --> R[Verify File Integrity with Hash]
R --> S[Log Successful Transfer to Blockchain]
S --> T([End File Transfer Complete])
brew install unishare
winget install unishare
- Launch Unishare on both devices
- Select files you want to share
- Choose the recipient device from the discovered devices list
- Confirm the transfer on the receiving device
- Files are transferred directly between devices
Unishare offers optional integration with the Midnight blockchain for enhanced security:
- Data Integrity & Logging: Tamper-proof records of file transfers with blockchain verification
- Decentralized Authentication: Secure device verification before transfers
- Secure Key Management: Additional layer of encryption security
Unishare is built with:
- Tauri - For the application framework
- Rust - For performance-critical backend operations
- TypeScript - For the frontend interface
# Clone the repository
git clone https://github.com/unishare/unishare.git
cd unishare
cd unishare
# Install dependencies
npm install
cd src-tauri
# Run in development mode
npm run tauri dev
# Build for production
npm run tauri build
git clone https://github.com/unishare/unishare.git
cd unishare
cd unishare-frontend
npm install
npm run tauri dev
Unishare follows a sophisticated connection flow as visualized in the diagram below:
- Transfer Request: User initiates file transfer
- Device Support Check: System checks available connection methods
- Connection Attempt: Tries each method in priority order until successful
- File Security: Computes file hash and integrates with Midnight blockchain
- Transfer Verification: Ensures file integrity before completing the transfer
The blockchain integration provides three key security features:
- File hash storage for integrity verification
- Secure encryption key management
- Device and user authentication
We welcome contributions! Please see our CONTRIBUTING.md for guidelines on how to participate in the development of Unishare.
MIT License - See LICENSE for details.
Unishare is designed with privacy in mind:
- No data is stored on servers
- File transfers are direct between devices
- Optional blockchain integration only stores cryptographic hashes, not file contents