Hacker News new | ask | show | jobs
by NayamAmarshe 776 days ago
Looks good but any plans to make it open source?

Similar open source solutions exist like:

- https://pairdrop.net/

- https://wormhole.app/

- https://www.snapdrop.net/

How does this compare?

6 comments

The "wormhole" you linked is closed-source, perhaps you meant this one, which is open-source (and iirc came first, but presumably has a smaller SEO budget)

https://webwormhole.io/

https://github.com/saljam/webwormhole

https://www.sharedrop.io/ as well. It's open sourced, too.
This doesn’t seem to work on iOS Safari.
I've been hosting my own pairdrop for a year now, very easy and quick to share a file between my smartphone and laptop without digging out a usb cable.
I've got another one on the topic of self-hosted file sharing:

- FileBrowser (https://filebrowser.org/features)

- Syncthing (https://syncthing.net/)

Run both as Docker containers on a server at home. Syncthing keeps the files on your PC, Mac, and BSD systems in sync, and FileBrowser can point to the sync share and supply a convenient web UI for phones, etc. It works for me, it's kind of like a local Dropbox.

Syncthing does not need a server to work over the LAN, and I think you can set it to only use peer discovery over a LAN. You can disable pubic servers, but data sent through them is encrypted anyway.

Syncthing + KDE connect does a lot.

The only issues I have had is that I cannot ensure that both are always running on android.

Oh for sure, Syncthing absolutely works peer to peer. But I find it useful to have a central always-online hub for clients to sync to.

For example, imagine you save a file on your laptop then put it to sleep. You turn on your desktop and the file isn't there because the laptop is now asleep. Having a central 24/7 Syncthing server allows the share to always be available.

Funnily enough, the only issue I have with kde connect is I can't get it to not run on Android; always starts in background somehow.
I use KDE Connect for that. Have you given it a try?
Thank you for introducing me to this! Life transferring files and holding presentations will be a lot easier from now on
No, I did try the Gnome equivalent a long time ago but these days I use a more minimal setup. So I'd prefer a CLI tool.
I like the wormhole-william[0] Go implementation of "Magic Wormhole" protocol on the CLI. There's a couple of compatible Android apps[1][2] in the F-Droid store and Rydmport[3] for your GUI loving friends.

[0](https://github.com/psanford/wormhole-william)

[1](https://f-droid.org/en/packages/com.pavelsof.wormhole/)

[2](https://f-droid.org/en/packages/com.leastauthority.destiny/)

[3](https://github.com/Jacalz/rymdport)

KDEConnect can be used from the CLI :)

  kdeconnect-cli --share [url|path/to/file] --device [device_id]
I really want to like kdeconnect because when it does work, it works well, but in my experience it just has way too many bugs and seems to randomly stop working for unknown reasons.
What is the Gnome equivalent? If you mean GSconnect, that's an implementation of kde connect. I think kde connect has some CLI tools, but they're not super ergonomic.

For CLI stuff, I usually just run the python http server or woof and make a QR code with the URL.

What about sharing from your phone to your laptop?
KDE Connect allows you to send individual files both ways and also to browse files on your phone from your computer. It is also capable of sharing the clipboard and open link from one device to another, as well as controlling input (mouse and keyboard) from another device.
Personally, I use pairdrop for that. Though, if I'm limited to CLI, woof has an upload option (-U) allowing me to select a file from the phone. Don't know of an easy way to do that from the builtin http.server.
kde connect runs on laptops and phones?

https://kdeconnect.kde.org/download.html

I use Telegram for that. Also good for taking notes or reminders for yourself without having to use a separate app.
Are messages to self even safe on Telegram?

Secret chats don’t work between the desktop client and the app, so I would suspect that, like the rest of the messages, everything is saved on telegram’s servers in the clear.

Or am I missing something?

Telegram has cloud encryption via MTProto 2.0. The servers use a distributed key generation mechanism.
Telegram is not end to end encrypted, and thus not suitable for such uses due to insecurity.
Telegram has cloud encryption via MTProto 2.0. The servers use a distributed key generation mechanism.
Cloud encryption is just HTTPs + encryption at rest (only claimed, not verified).

They hold the keys, irrespective of how many proprietary protocols they wrap over the message.

A great product tho! I used saved messages extensively!

> Cloud encryption is just HTTPs + encryption at rest

Not just plain-old HTTPs. MTProto 2.0 is a whole encryption algorithm for Cloud chats: https://core.telegram.org/mtproto/AJiEAwIYFoAsBGJBjZwYoQIwFM...

Same here! I use Telegram Saved Messages a lot! It's fast and very convenient.

Telegram doesn't support markdown though, that's why I decided to build writedown.app

Signal, too. I have 3 profiles set up that are basically 'notes to self'.
Non-open source - https://file.pizza/
Oh, my bad!
Yes will make it open source in future. Just need to clean the code a little bit and make few more changes.
What about the second question?
Sorry I missed it. but can you elaborate on compare please
What makes it different? (I'd personally like to know the details of how the cryptography works)
In terms of differentiation, I have not explored much solutions available out there so can not comment much on that. About the encryption part, WebRTC communications over browsers are encrypted using Datagram Transport Layer Security (DTLS). All WebRTC sessions are encrypted.

You can found more in depth details in this article: https://telnyx.com/resources/webrtc-encryption-and-security

And sorry for not replying I was not on the platform lately

I don't think DTLS alone would be considered end-to-end encryption. For E2E the application layer has to be responsible for encryption and decryption.

Are you employing E2E on the client side? Encryption during transit shouldn't be claimed as E2E. Please correct me if I'm wrong.