Airshare¶
What is Airshare?¶
Airshare is a Python-based CLI tool and module that lets you transfer data between two machines in a local network, P2P, using Multicast-DNS. It also opens an HTTP gateway for other non-CLI external interfaces. It works completely offline! Built with aiohttp and zeroconf.
Important Links¶
- Source Code: https://github.com/KuroLabs/Airshare
- Bug Reports: https://github.com/KuroLabs/Airshare/issues
- Documentation: https://airshare.rtfd.io
- PyPI: https://pypi.org/project/Airshare
Installation¶
Use the package manager pip to install Airshare.
$ pip install Airshare
If you have a non-Apple device, consider installing Avahi (for Linux) or Bonjour (for Windows) if you’d like to use Link-local Name Resolution (for the .local
addresses).
CLI Tool Reference¶
Module Reference¶
Known Issues¶
- Link-local Name Resolution (for the
.local
addresses) on non-Apple devices requires Avahi (on Linux) or Bonjour (on Windows). Chances are you already have them, but if you don’t, do check the web on how to install them. - Link-local Name Resolution, for example,
http://noobmaster.local
, does not work on Android phones. This is because Android browsers do not have inbuilt Multicast-DNS service discovery. - Multiple progress bars for concurrent file uploads using
tqdm
may not work as intended on some terminals, refer to thetqdm
documentation for more details. - Using
Ctrl
+C
on Windows, with Python < 3.8, does not terminate theasyncio
event loop. UseCtrl
+Break
instead. If you do not have aBreak
orPause
key, some other combinations may work includingCtrl
+Fn
+B
(check the web for solutions).
Contributing¶
Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.
License¶
Airshare is licensed under the terms of the MIT License.
Airshare is the joint work of Kandavel A, Mohanasundar M and Nanda H Krishna.
MIT License
Copyright (c) 2020
Kandavel A <kanduarul@gmail.com>,
Mohanasundar M <itsmohanpierce@gmail.com> and
Nanda H Krishna <nanda.harishankar@gmail.com>
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.