Encrypted file transfer over ad hoc WiFi. No network infrastructure required, just two laptops in close range. Linux, Mac, and Windows.

Overview

Flying Carpet

To download, visit the releases page!

Wireless, encrypted file transfer over automatically configured ad hoc networking. No network infrastructure required (access point, router, switch). Just two laptops (Mac, Linux, and Windows supported) with wireless chips in close range.

Don't have a flash drive? Don't have access to a wireless network or don't trust one? Need to move a file larger than 2GB between different filesystems but don't want to set up a file share? Try it out!

Screenshots:

Features:

  • Cross-platform: Linux, Mac, and Windows.

  • Transfer multiple files at once, without losing progress if the transfer is interrupted or canceled.

  • Speeds over 120mbps (with laptops close together).

  • Does not use Bluetooth or your local network, just wireless chip to wireless chip.

  • Files encrypted in transit.

  • Large files supported (<10MB RAM usage while transferring a 4.5GB file).

  • No installation required and no dependencies needed.

  • Interoperable GUI and CLI versions.

GUI Compilation instructions:

  • go get -x github.com/spieglt/flyingcarpet

  • Windows only: Open flyingcarpet\WFD_DLL\WFD_DLL.sln with Visual Studio, and compile in Release mode for x64.

  • If compiling on Windows, get mt.exe (available in Windows SDKs) and make sure it's in your path.

  • Go through the entire setup guide for therecipe/qt and make sure qtdeploy is in your path.

  • Install go.rice and make sure rice is in your path.

  • Run .\wg_rebuild.ps1 from Powershell (for Windows), ./mg_rebuild from Terminal (for Mac), or ./lg_rebuild (for Linux).

CLI Compilation instructions

  • go get -x github.com/spieglt/flyingcarpet

  • Windows only: Open flyingcarpet\WFD_DLL\WFD_DLL.sln with Visual Studio, and compile in Release mode for x64. Then install go.rice and make sure rice is in your path.

  • cd $GOPATH/src/github.com/spieglt/flyingcarpet/cli

  • Windows only: .\embed_dll.ps1 from Powershell

  • go build -o flyingcarpet.exe

Restrictions:

  • The Mac version is a standard .app bundle, the Linux version is an executable that writes dependencies to a temp location and runs from there, and the Windows version is a .zip with an .exe and other dependencies inside. I'm working on a better solution for Windows. It was a standalone .exe when I was using wxWidgets but this has not been possible since moving to Qt. PRs welcome.

  • 64-bit only. Supported Operating Systems: macOS 10.12+, Windows 7+, and Linux Mint 18. I only have access to so many laptops, so if you've tried on other platforms please let me know whether it worked.

  • Disables your wireless internet connection while in use (does not apply to Windows when receiving).

  • On Mac: You may have to right-click and select "Open" if your settings don't allow running unsigned applications.

  • On Windows: Click "More info" and "Run anyway" if you receive a Windows SmartScreen prompt. You may also need to disable WiFi Sense.

  • I need help testing on Linux and supporting non-Debian-based distributions! Currently only confirmed to work on Mint 18, and only on wireless cards/drivers that support ad hoc networking with nmcli.

  • Flying Carpet should rejoin you to your previous wireless network after a completed or canceled transfer. This will not happen if the program freezes, crashes, or if the windows is closed during operation.

Planned features:

Licenses for third-party tools and libraries used can be found in the "3rd_party_licenses" folder.

If you've used Flying Carpet, please send me feedback! Thank you for your interest!

Issues
  • Its not working for me

    Its not working for me

    I am getting an error when trying to send a file to a "laptop" (its called a GPD WIN) when running it under Windows 10 Home. Here's the log:

    Entered password: FSPy Error getting current SSID: exit status 1 Profile flyingCarpet_098b49 is added on interface Realtek RTL8192CU Wireless LAN 802.11n USB 2.0 Network Adapter. Looking for ad-hoc network flyingCarpet_098b49 for 60 seconds... Error getting current SSID: exit status 1

    opened by Zero3K 29
  • CLI version?

    CLI version?

    This would be quite useful for my daily workflows if I was able to get a CLI version of this working.

    Imagine something like

    $ flyingcarpet transfer /tmp/download.tar.gz [-password 1234 -timeout 10m]
    

    And on the other end:

    $ flyingcarpet receive /tmp/copy.tar.gz -password 1234 [-timeout 10m]
    

    Once the transfer is done, the sender cleans up and reverts just like it already does (the rx does the same as well).

    What do you think?

    opened by sabhiram 11
  • Add Ctrl-Q quit hotkey

    Add Ctrl-Q quit hotkey

    opened by tutacat 5
  • Migrate away from MD5

    Migrate away from MD5

    MD5 shouldn't be used for anything these days. SHA-256 should be used.

    opened by sa7mon 5
  • Its taking up too much disk space

    Its taking up too much disk space

    86 MB seems to be high for what it does. Is there any way to reduce it or not?

    opened by Zero3K 4
  • Linux support

    Linux support

    FlyingCarpet is already an awesome project! Thank you!

    I only miss Linux support... Is it planned?

    opened by frol 3
  • Dependency to libwebkitgtk3 cant be met in Arch based Manjaro

    Dependency to libwebkitgtk3 cant be met in Arch based Manjaro

    ... as the title says, there appears to be no package that would supply me with the required package. The error that occurs while starting up is:

    ./Flying Carpet: error while loading shared libraries: libwebkitgtk-3.0.so.0: cannot open shared object file: No such file or directory

    But nevertheless, I think this is an awesome idea and would make a useful addition to any Computer/OS :) Thanks for your work

    opened by schlypel 3
  • Context menu entry on all file types

    Context menu entry on all file types

    It would be nice if it could set a context menu entry on all file types that would have one or more of them be sent via Flying Carpet.

    opened by Zero3K 3
  • Stop blanking path box

    Stop blanking path box

    Now the path box is not reset when you click a radio button, or when you click cancel on a selection dialog

    opened by tutacat 3
  • Unable to obtain IP error

    Unable to obtain IP error

    Capture When I am trying to send a file from a Windows 10 to Windows 7 system, its showing that unable to obtain IP address in the sending machine. Another issue is that its not always showing showing updated network SSID.
    opened by prajul 1
Releases(v4.1)
  • v4.1(Sep 11, 2021)

    Flying Carpet enables wireless, encrypted, cross-platform file transfer over automatically configured ad hoc networking. No network infrastructure required (access point, router, switch). Just two laptops (Mac, Linux, and Windows supported) with wireless chips in close range.

    Don't have a flash drive? Don't have access to a wireless network or don't trust one? Need to move a file larger than 2GB between different filesystems but don't want to set up a file share? Try it out!

    Version 4.1 adds:

    • Drag and drop (Linux and Mac only)

    • Folder upload

    • Keyboard shortcuts to toggle folder upload (Ctrl/Cmd+S) and quit (Ctrl/Cmd+Q)

    • Doesn't reset send/receive selections when clicking same mode button multiple times

    Source code(tar.gz)
    Source code(zip)
    FlyingCarpetLinux.zip(40.86 MB)
    flyingCarpetLinuxCLI(3.38 MB)
    FlyingCarpetMac.zip(39.61 MB)
    flyingCarpetMacCLI(3.58 MB)
    FlyingCarpetWindows.zip(22.97 MB)
    flyingCarpetWindowsCLI.exe(6.09 MB)
  • v4.0(May 3, 2021)

    Flying Carpet enables wireless, encrypted, cross-platform file transfer over automatically configured ad hoc networking. No network infrastructure required (access point, router, switch). Just two laptops (Mac, Linux, and Windows supported) with wireless chips in close range.

    Don't have a flash drive? Don't have access to a wireless network or don't trust one? Need to move a file larger than 2GB between different filesystems but don't want to set up a file share? Try it out!

    Source code(tar.gz)
    Source code(zip)
    FlyingCarpetLinux.zip(40.79 MB)
    flyingCarpetLinuxCLI(3.35 MB)
    FlyingCarpetMac.zip(39.55 MB)
    flyingCarpetMacCLI(3.54 MB)
    FlyingCarpetWindows.zip(22.96 MB)
    flyingCarpetWindowsCLI.exe(6.19 MB)
  • 3.0(May 3, 2020)

    Version 3.0 added scrypt, fixed secretbox use, fixed Linux->Mac transfers, improved Linux network code, and disabled buttons during transfer. Not compatible with earlier versions of Flying Carpet.

    Flying Carpet enables wireless, encrypted, cross-platform file transfer over automatically configured ad hoc networking. No network infrastructure required (access point, router, switch). Just two laptops (Mac, Linux, and Windows supported) with wireless chips in close range.

    Don't have a flash drive? Don't have access to a wireless network or don't trust one? Need to move a file larger than 2GB between different filesystems but don't want to set up a file share? Try it out!

    Source code(tar.gz)
    Source code(zip)
    Flying.Carpet.Linux.zip(46.23 MB)
    Flying.Carpet.Mac.zip(25.72 MB)
    Flying.Carpet.Windows.zip(20.85 MB)
    flyingcarpet.CLI.Linux.zip(1.72 MB)
    flyingcarpet.CLI.Mac.zip(1.94 MB)
    flyingcarpet.CLI.Windows.zip(3.53 MB)
  • v2.0.1(Jan 13, 2019)

    (Version 2.0.1 updates: CLI version, better error handling and details in GUI.)

    Version 2.0 includes a GUI rewritten with Qt, a refactor uniting the CLI and GUI branches, retry logic, better admin handling on Windows and Mac, clearer instructions, and better filesystem and transfer code.

    Flying Carpet enables wireless, encrypted, cross-platform file transfer over automatically configured ad hoc networking. No network infrastructure required (access point, router, switch). Just two laptops (Mac, Linux, and Windows supported) with wireless chips in close range.

    Don't have a flash drive? Don't have access to a wireless network or don't trust one? Need to move a file larger than 2GB between different filesystems but don't want to set up a file share? Try it out!

    Source code(tar.gz)
    Source code(zip)
    Flying.Carpet.Linux.zip(46.21 MB)
    Flying.Carpet.Mac.zip(25.71 MB)
    Flying.Carpet.Windows.zip(20.83 MB)
    flyingcarpet.CLI.Linux.zip(1.69 MB)
    flyingcarpet.CLI.Mac.zip(1.92 MB)
    flyingcarpet.CLI.Windows.zip(3.54 MB)
  • v2.0(Jan 10, 2019)

    Version 2.0 includes a GUI rewritten with Qt, a refactor uniting the CLI and GUI branches, retry logic, better admin handling on Windows and Mac, clearer instructions, and better filesystem and transfer code.

    Flying Carpet enables wireless, encrypted, cross-platform file transfer over automatically configured ad hoc networking. No network infrastructure required (access point, router, switch). Just two laptops (Mac, Linux, and Windows supported) with wireless chips in close range.

    Don't have a flash drive? Don't have access to a wireless network or don't trust one? Need to move a file larger than 2GB between different filesystems but don't want to set up a file share? Try it out!

    windemomacdemo linuxdemo

    Source code(tar.gz)
    Source code(zip)
    Flying.Carpet.Linux.zip(46.21 MB)
    Flying.Carpet.Mac.zip(25.70 MB)
    Flying.Carpet.Windows.zip(20.83 MB)
  • v1.2(Feb 9, 2018)

    UPDATES:

    • Various bug fixes.
    • multi-file transfers
    • cancel button
    • CLI version

    Flying Carpet enables wireless, encrypted, cross-platform file transfer over automatically configured ad hoc networking. No network infrastructure required (access point, router, switch). Just two laptops (Mac, Linux, and Windows supported) with wireless chips in close range.

    Don't have a flash drive? Don't have access to a wireless network or don't trust one? Need to move a file larger than 2GB between different filesystems but don't want to set up a file share? Try it out!

    macdemo windemolinuxdemo

    (CLI screenshots)

    Notes/Restrictions:

    • 64-bit only. Supported Operating Systems: macOS 10.12+, Windows 7+, and Linux Mint 18. I only have access to so many laptops, so if you've tried on other platforms please let me know whether it worked.

    • Disables your wireless internet connection while in use (does not apply to Windows when receiving).

    • On Mac: May have to click Allow or enter username and password at prompt to clear Flying Carpet SSID from your preferred networks list. You may also have to right-click and select "Open" if your settings don't allow running unsigned applications.

    • On Windows: Must run as administrator (to allow connection through firewall and clear ARP cache). Right-click "Flying Carpet.exe" and select "Run as administrator." Click "More info" and "Run anyway" if you receive a Windows SmartScreen prompt. You may also need to disable WiFi Sense.

    • I need help testing on Linux and supporting non-Debian-based distributions! Currently only confirmed to work on Mint 18.

    • Flying Carpet should rejoin you to your previous wireless network after a completed or canceled transfer. This will not happen if the program freezes, crashes, or if the windows is closed during operation.

    Please submit feedback on Github or send to [email protected] Thanks for downloading!

    Source code(tar.gz)
    Source code(zip)
    Flying.Carpet.Linux.zip(10.67 MB)
    Flying.Carpet.Mac.zip(9.98 MB)
    Flying.Carpet.Windows.zip(20.24 MB)
    flyingcarpet.Linux.CLI.zip(1.38 MB)
    flyingcarpet.Mac.CLI.zip(1.57 MB)
    flyingcarpet.Windows.CLI.zip(1.49 MB)
  • v1.1(Dec 16, 2017)

    UPDATES:

    • multi-file transfers
    • cancel button
    • CLI version
    • fix for bug that prevented hosted-network-capable Windows machines from working.

    Flying Carpet enables wireless, encrypted, cross-platform file transfer over automatically configured ad hoc networking. No network infrastructure required (access point, router, switch). Just two laptops (Mac, Linux, and Windows supported) with wireless chips in close range.

    Don't have a flash drive? Don't have access to a wireless network or don't trust one? Need to move a file larger than 2GB between different filesystems but don't want to set up a file share? Try it out!

    macdemo windemolinuxdemo

    (CLI screenshots)

    Notes/Restrictions:

    • 64-bit only. Supported Operating Systems: macOS 10.12+, Windows 7+, and Linux Mint 18. I only have access to so many laptops, so if you've tried on other platforms please let me know whether it worked.

    • Disables your wireless internet connection while in use (does not apply to Windows when receiving).

    • On Mac: May have to click Allow or enter username and password at prompt to clear Flying Carpet SSID from your preferred networks list. You may also have to right-click and select "Open" if your settings don't allow running unsigned applications.

    • On Windows: Must run as administrator (to allow connection through firewall and clear ARP cache). Right-click "Flying Carpet.exe" and select "Run as administrator." Click "More info" and "Run anyway" if you receive a Windows SmartScreen prompt. You may also need to disable WiFi Sense.

    • I need help testing on Linux and supporting non-Debian-based distributions! Currently only confirmed to work on Mint 18.

    • Flying Carpet should rejoin you to your previous wireless network after a completed or canceled transfer. This will not happen if the program freezes, crashes, or if the windows is closed during operation.

    Please submit feedback on Github or send to [email protected] Thanks for downloading!

    Source code(tar.gz)
    Source code(zip)
    Flying.Carpet.Linux.zip(10.67 MB)
    Flying.Carpet.Mac.zip(9.98 MB)
    Flying.Carpet.Windows.zip(20.24 MB)
    flyingcarpet.Linux.CLI.zip(1.38 MB)
    flyingcarpet.Mac.CLI.zip(1.56 MB)
    flyingcarpet.Windows.CLI.zip(1.49 MB)
Owner
Theron Spiegl
AppSec at Latacora. Trying to make useful free & open source software. Interested in Rust, C, cryptography, and systems dev.
Theron Spiegl
PowerShell for every system!

PowerShell Welcome to the PowerShell GitHub Community! PowerShell Core is a cross-platform (Windows, Linux, and macOS) automation and configuration to

PowerShell Team 29.6k Sep 18, 2021
The missing Desktop application for Pushbullet.

PB for Desktop PB for Desktop is a lightweight open-source Desktop app for PushBullet. Receive native push notifications on macOS, Windows and Linux.

sidneys.github.io 466 Sep 11, 2021
Read-only mirror of Wireshark's Git repository at https://gitlab.com/wireshark/wireshark. GitHub won't let us disable pull requests. ☞ THEY WILL BE IGNORED HERE ☜ Please upload them at GitLab.

General Information Wireshark is a network traffic analyzer, or "sniffer", for Linux, macOS, *BSD and other Unix and Unix-like operating systems and f

Wireshark Foundation 3.6k Sep 16, 2021
Simple network activity monitor for macOS

Loading See when Mac apps are using your network Similar to the network activity indicator on iOS, Loading shows a spinning progress wheel in your men

Mike McFadden 564 Sep 14, 2021
Managing windows size and position in OSX

ShiftIt Managing window size and position in OSX Looking for a new maintainer #296. This project is looking for a new maintainer. Until that transitio

Filip Krikava 5.3k Sep 24, 2021
Put the output from any script or program into your macOS Menu Bar (the BitBar reboot)

Welcome to xbar xbar (the BitBar reboot) lets you put the output from any script/program in your macOS menu bar. Complete rewrite from the ground up -

Mat Ryer 15.4k Sep 23, 2021
The Blockstack Browser

Blockstack Browser The Blockstack Browser allows you to explore the Blockstack internet. ⚠️ IMPORTANT: This project has been deprecated in favor of th

Stacks 1.1k Sep 16, 2021
:key: Cross-Platform Passwords Secrets Vault

Buttercup Desktop Buttercup for Desktop - Mac, Linux and Windows ² ⚠️ Buttercup v2 is in pre-release - It will reach its stable release channel soon A

Buttercup 3.6k Sep 10, 2021
KeePassXC is a cross-platform community-driven port of the Windows application “Keepass Password Safe”.

KeePassXC KeePassXC is a modern, secure, and open-source password manager that stores and manages your most sensitive information. You can run KeePass

KeePassXC 11.1k Sep 23, 2021
Find files with SQL-like queries

fselect Find files with SQL-like queries Why use fselect? While it doesn't tend to fully replace traditional find and ls, fselect has these nice featu

null 3k Sep 15, 2021
EnvPane - An OS X preference pane for environment variables

EnvPane - A macOS preference pane for environment variables EnvPane is a preference pane for Mac OS X (10.8 or newer) that lets you set environment va

Hannes Schmidt 549 Sep 19, 2021
:cat2: webrtc screensharing electron app for mac os (Alpha)

ScreenCat ScreenCat is an open source screen sharing + remote collaboration application. You can share your desktop with someone else while letting th

Max Ogden 3k Sep 16, 2021
Your next meeting always before your eyes in the macOS menu bar

MeetingBar is a menu bar app for your calendar meetings (macOS 10.15+). Integrated with 20+ meeting services so you can quickly join meetings from eve

Andrii Leitsius 2.4k Sep 22, 2021
macOS app which assembles and disassembles animated png files

Over 11k downloads* ?? APNGb 2.0.1 (Download) APNGb is a macOS app which creates animated png from a series of png frames and disassembles animated pn

Ștefan Godoroja 233 Sep 6, 2021
ControlPlane - context-sensitive computing for OS X

ControlPlane What is ControlPlane ControlPlane, a fork of MarcoPolo, brings context and location sensitive awareness to OS X. With ControlPlane you ca

Dustin Rue 1.6k Sep 14, 2021
To-do list time tracker for programmers and other digital workers with Jira, Github, and Gitlab integration

Please help us improve the app's usability! Organize your daily tasks in one place while making time tracking a lot less annoying. Super Productivity

Johannes Millan 4.1k Sep 18, 2021
Adds numbered shortcuts to the output git status, and much more

SCM Breeze Streamline your SCM workflow. SCM Breeze is a set of shell scripts (for bash and zsh) that enhance your interaction with git. It integrates

SCM Breeze 2.5k Sep 23, 2021
MQTT X - Elegant Cross-platform MQTT 5.0 Desktop Client

MQTT X English | 简体中文 | 日本語 MQTT X is a cross-platform MQTT 5.0 client tool open sourced by EMQ, which can run on macOS, Linux and Windows, and suppor

Scalable Enterprise MQTT Broker 1.3k Sep 23, 2021
Sigil is a multi-platform EPUB ebook editor

Sigil Sigil is a free, open source, multi-platform ebook editor that uses Qt (and QtWebEngine). It is designed to edit books in ePub format (both ePub

null 4.3k Sep 18, 2021