{ "info": { "author": "Viktor Barzin", "author_email": "vbarzin@gmail.com", "bugtrack_url": null, "classifiers": [ "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python :: 3" ], "description": "# Sales pitch\n\n\\- Ever felt the pain of transferring files to your peers?\n\n\\- Yeah, well we've got Facebook and email to transfer them.\n\n\\- What if you file is bigger than 25MB? What if you want to transfer a 10GB archive or a VM image?\n\nNot everyone has big USB sticks or external hard drives with them all the time. Online file sharing services are cool, however, there are 2 things I dislike about them:\n1. Sending any file to a peer means uploading it on a server first and then my peer has to download it which is a total waste of traffic. What if my bandwidth is low?\n2. Privacy concerns - I don't want someone potentially snooping on my files.\n\nPeer-to-peer should be easy, especially when connected to the same network! How do we do it then?\n\nRead on.\n\n# What is this project about?\n`lansync` is an application that simplifies file transfers between peers connected to the same network.\n\nIt is a wrapper around the popular [rsync](https://en.wikipedia.org/wiki/Rsync) tool.\n[The way rsync works](https://rsync.samba.org/how-rsync-works.html) is really clever and it's quite easy to synchronize files on different machines.\n\nThe issue is that 99% of the time rsync is used with ssh and having ssh access to someone's computer is not desirable (at least from their point of view).\n\nFortunately, you can use rsync with ssh by severely limiting the access you have over that channel.\nTo be more precise you are allowed only to run `rsync --server` on the receiving side.\n\n# Demo\n\nHere you can see a simple example. The client on the left wants to send `test.txt` to the client on the left. You can see that both machines have different ip addresses but are on the same network. Before running `lansync` the `rsync` command fails dues to missing permissions, but once the public key of the machine on the right is imported, rsync succeeds and the file is successfully sent.\n\n![](./assets/lansync-demo.gif)\n\nCurrently key importing can be done in several ways with `-i` or `--import`:\n- Raw string of passed\n- Read from a file\n- Github username\n\nNote that for each of the last two, if multiple keys are found, they will all be added.\n\nNow since you are importing other people's (hopefully ones you trust) keys it would be a good idea to limit the share directory in some way.\nYou don't want people trolling you by sending 100GB files just do troll you and leave with without any free space.\n\n## Share size limit\n\nHow does it work?\n\nWhen you run `lansync --size ` a file is created with that size on your machine in the `~/.lansync/` directory.\nAfterwards that file is formatted as a disk image and a single *ext4* partition is setup.\n\nMounting filesystems requires `sudo` access so it has been left up to you to mount the new filesystem in you share directory.\nThe application tells you how to do that exactly in a secure way.\n\n![](./assets/lansync-size.gif)\n\nEssentially, people are sharing files to your virtual filesystem that you can delete anytime you want without affecting the rest of your system.\n\n# Installation\nCurrently I do no provide a single binary so I recommend installing dependencies in a virtual environment:\n```bash\n$ git clone git@github.com:ViktorBarzin/lansync.git\n$ pip install -r requirements.txt\n```\n\nSee help with\n```bash\n$ python lansync.py -h\n```\n\n# TODO:\n- add PyPi package/binary\n- smb support\n\n# Known issues\n- Since the app is composed of multiple files, moving any of them to another directory may result if failure to run. (Paths are painful)\n\n\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/ViktorBarzin/lansync", "keywords": "", "license": "", "maintainer": "", "maintainer_email": "", "name": "lansync", "package_url": "https://pypi.org/project/lansync/", "platform": "", "project_url": "https://pypi.org/project/lansync/", "project_urls": { "Homepage": "https://github.com/ViktorBarzin/lansync" }, "release_url": "https://pypi.org/project/lansync/0.0.1/", "requires_dist": [ "sshpubkeys" ], "requires_python": "", "summary": "Make file sharing easier", "version": "0.0.1" }, "last_serial": 5308434, "releases": { "0.0.1": [ { "comment_text": "", "digests": { "md5": "2b437a5b1a5603c0ecf680e14debaf98", "sha256": "f4b4f4d896163818ffbc24bfa92f3d7504c676c4d249654afe1887f8aad45d54" }, "downloads": -1, "filename": "lansync-0.0.1-py3-none-any.whl", "has_sig": false, "md5_digest": "2b437a5b1a5603c0ecf680e14debaf98", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 88918, "upload_time": "2019-05-23T17:13:06", "url": "https://files.pythonhosted.org/packages/2b/40/3568eb07d1606021cd796cb87cb49bee4adf801c9d25868d8318286e3532/lansync-0.0.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "827ba66c2a01a76067417a7083fe10a1", "sha256": "c90932dde75f0097c8a8360174cd9166eca79fbb6a234fe08f9356d6a71dc0ba" }, "downloads": -1, "filename": "lansync-0.0.1.tar.gz", "has_sig": false, "md5_digest": "827ba66c2a01a76067417a7083fe10a1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 88293, "upload_time": "2019-05-23T17:13:09", "url": "https://files.pythonhosted.org/packages/1f/09/7db970f614f09a2ae416978a80e9633d6905b8a87bba1b94446b82a7c461/lansync-0.0.1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "2b437a5b1a5603c0ecf680e14debaf98", "sha256": "f4b4f4d896163818ffbc24bfa92f3d7504c676c4d249654afe1887f8aad45d54" }, "downloads": -1, "filename": "lansync-0.0.1-py3-none-any.whl", "has_sig": false, "md5_digest": "2b437a5b1a5603c0ecf680e14debaf98", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 88918, "upload_time": "2019-05-23T17:13:06", "url": "https://files.pythonhosted.org/packages/2b/40/3568eb07d1606021cd796cb87cb49bee4adf801c9d25868d8318286e3532/lansync-0.0.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "827ba66c2a01a76067417a7083fe10a1", "sha256": "c90932dde75f0097c8a8360174cd9166eca79fbb6a234fe08f9356d6a71dc0ba" }, "downloads": -1, "filename": "lansync-0.0.1.tar.gz", "has_sig": false, "md5_digest": "827ba66c2a01a76067417a7083fe10a1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 88293, "upload_time": "2019-05-23T17:13:09", "url": "https://files.pythonhosted.org/packages/1f/09/7db970f614f09a2ae416978a80e9633d6905b8a87bba1b94446b82a7c461/lansync-0.0.1.tar.gz" } ] }