
Show HN: Txr – Transfer files/directories to others with WebSocket streams - whatl3y
https://github.com/whatl3y/txr
======
cannedslime
Interresting but it really doesn't seem that simple. I usually just use rsync
whenever I need to move some stuff from one machine to the other.

I can't really take your word for it that you won't store any files,
furthermore that might not even be legal, depedending on your country you must
log transactions as a service provider.

What about SSL / encryption if you want to run the server your self, I took a
peek at the source code and it be nice if certificate was configurable through
the config files or ENV vars.

I think WebSockets should stay in the browser, but maybe that is just me being
pedantic.

~~~
whatl3y
Thanks for the feedback and recommendations. I agree I could add support for
an SSL cert to be used within the express server (today the Heroku dyno is
just using Let's Encrypt, which is abstracted from the app itself). I imagine
I could add this over a weekend that I have time in the near future.

> _Interresting but it really doesn 't seem that simple..._

Thanks for the feedback, but can you elaborate on how you feel it's not? I'm
not sure it could get any simpler to send files than `txr listen username` and
`txr send -u username -f filepath`, but I'm willing to listen. Maybe you mean
setting up the server isn't simple? Even that is as easy as `txr-server` from
the command line though with the package installed...

> _I can 't really take your word for it that you won't store any files..._

I appreciate this sentiment, but that's why the server component is included
in the package. If you don't trust the default server on Heroku (which is
primarily just for someone to quickly gain an understanding of how to use it,
not to actually use permanently moving forward), set up a server on your
machine or local network and use it instead :)

------
saganus
Interesting.

Would it make sense to pair this with WireGuard, to provide end-to-end
encrypted file transfer?

If we setup a WireGuard connections between two nodes, then run the server and
client through this link, it should work seamlessly, right?

------
xori
Well fucking done. I wanted to build this ~5 years ago, but nodejs wasn't
mature enough. I tried in Java but doing your own UPnP implementation is no
fun.

~~~
whatl3y
Thanks! Yeah nodejs streams and async IO seemed like an ideal use case for
this type of tool, plus I wanted to have the easiest approach to passing files
between 2 people as possible (we use it at work all the time). Obv a lot has
happened in 5 years with nodejs, so I realize it was likely an order of
magnitude easier for me to get up-and-running in the last couple months with
this tool than it would've been for you 5 years ago haha.

------
kazinator
Name taken almost nine years ago by the TXR Language.

~~~
whatl3y
Thanks for the heads up on the name clash (obviously never heard of the TXR
language before this). I named it based on a couple of factors being 1.
something that's easy to remember and makes sense (txr ~ transfer) and 2. the
NPM module name wasn't taken yet :)

I can change the name, but our projects are pretty much totally different and
I'm not trying to make any money off this tool so would prefer to just leave
it as is if it won't confuse too many people.

~~~
kazinator
> _obviously never heard_

In 2009, I didn't rely on what I heard of or hadn't heard of; I googled very
thoroughly before naming my project and its principal executable.

A name clash is a problem for any FOSS distro that builds both packages.
People don't directly choose and use everything that is installed in a distro.
A lot of is is pulled in by dependencies, for instance.

