
Show HN: PicoTorrent, a tiny BitTorrent client for Windows - viktorelofsson
http://www.picotorrent.org
======
jzelinskie
This looks pretty neat. I've been using qBittorrent on Windows, but it doesn't
really support bulk operations, so I've been writing Python scripts[0] to
accomplish what I need. Please, cater to the users that need to idle with tons
of torrents open all the time and make it easy to import/export the current
state of the torrents loaded into client.

Also, shameless plug -- I work on an open source BitTorrent tracker[1] that
was adopted by Facebook for deploying their server software and have been
playing around with a framework for writing tracker logic via middleware[2].
If you want to talk about any of the client <> tracker interactions, I'm
totally down for discussion.

[0]:
[https://github.com/jzelinskie/move_torrents.py](https://github.com/jzelinskie/move_torrents.py)

[1]: [https://github.com/chihaya/chihaya](https://github.com/chihaya/chihaya)

[2]:
[https://github.com/jzelinskie/otoshi](https://github.com/jzelinskie/otoshi)

~~~
viktorelofsson
Great suggestions! Actually, one of the inspirations for PicoTorrent came from
this blog entry, [http://blog.libtorrent.org/2012/01/seeding-a-million-
torrent...](http://blog.libtorrent.org/2012/01/seeding-a-million-torrents/).

I haven't had a chance to test it with a million torrents yet, but my
development environment has a few thousand at least, so easy bulk operations
are a requirement :)

------
quanticle
I don't see the github repository for Picotorrent linked on the blog, so I'm
linking it here, in case anyone else is interested:
[https://github.com/picotorrent/picotorrent](https://github.com/picotorrent/picotorrent)

~~~
J_Darnley
Thank you. I did not see any mention of the fact this is open source anywhere
on their website.

------
15charlimit
How does this compare, featurewise/speedwise, to popular (yet simple and
powerful) clients like Deluge?

I ask because I'm not seeing an FAQ, list of features or User Manual
documentation on the linked page.

~~~
viktorelofsson
Both are built on Rasterbar-libtorrent and should provide equal performance if
configured the same, which I would definitely see as a goal.

Feature wise, PicoTorrent is lacking. Most popular features will be
implemented, along with a plugin API. Right now, nothing more than the basics
is implemented.

I'll try to put this, along with other information, in a FAQ asap.

~~~
aroch
>Both are built on Rasterbar-libtorrent and should provide equal performance
if configured the same

Eh...Deluge has made a number of changes to libtorrent that aren't replicable
solely by config tweaks. Such as lying about what pieces that client currently
has, lying about connections and others in order to get the tracker to assign
more peers and increase per-peer connections. Deluge also abuses the ever-
loving-crap out of memory, since it doesn't use the system memory manager and,
at least last I looked, their home built caching system was horribly broken
(that is, they goto-failed their own manager) which leads to horrible flush to
disk scenarios that kill speeds.

~~~
viktorelofsson
Interesting! I did not know this. If their tweaks work, I guess Deluge may
have a performance advantage.

We follow the latest vanilla libtorrent sources (not bound by releases), and
try to keep our C++ as close to the Windows API as possible. The only
dependency we have is libtorrent (plus Boost and OpenSSL since libtorrent
depends on those).

------
cmdrfred
Very nice. μTorrent has long been riddled with ad's (with sound for gates
sake!) and Deluge feels a little slow and bulky on my machine. This looks like
a lighter alternative.

------
butz
Installer 5,55MB, installed size: 20,6MB. That's not pico, more like mili- or
centi- as compared to uTorrent. For comparison, another open source bit-
torrent client Halite
([https://github.com/Eoinocal/Halite](https://github.com/Eoinocal/Halite))
weighs at 2,34MB (installer) and 12MB installed.

Installer didn't even ask where I want to install it and did not display any
success message, informing about successful installation. Needs more install
options for power users. Also portable (zip) version would be a big plus.

More comments more, maybe, because PicoTorrent fails to work in Sandboxie.

~~~
viktorelofsson
Hi, the reason PicoTorrent is 20MB installed is that we ship the PDB file in
the installer. In the future, the PDB file will be optional. The actual
executable is around 5,5MB. We ship the PDB file with the installer to help
with issues now in the beginning - to print stack traces (with symbol names)
if it crashes, etc.

The installer will receive a nice update with a user interface in the next
version.

Thanks for the input! :)

Ninja Edit: I'll take a look at fixing whatever is making PicoTorrent not work
in Sandboxie.

~~~
butz
Thanks for explanation. I sure hope final release will be really "pico" :D
I'll try to test it out some more over the weekend on a real OS, not sandbox.

------
tuananh
For those who use private trackers, it would take awhile for this to get
whitelisted.

~~~
viktorelofsson
This is true, however we still run PicoTorrent under the default libtorrent
peer ID which is whitelisted on a few private trackers as well.

------
rilut
Looks promising, I'm using it. Keep up your good work!

------
wnevets
how does it compare to uTorrent 2.2?

~~~
nickpsecurity
Something like 10-11x bigger installer lol. It's really tiny. Don't have a
Windows box so I can't say how similar .EXE's, RAM, and CPU usage are.

~~~
viktorelofsson
The PicoTorrent executable is somewhere around 5-6MB. RAM and CPU usage should
be low to tiny if I haven't made a mistake and leak memory all over the place
:) The reason our executable is so much bigger is that we have a few indirect
dependencies on Boost and OpenSSL (via libtorrent).

I'm open for suggestions on how to reduce size.

~~~
nickpsecurity
I was just picking at you as the uTorrent author and his work were among best
at low-fat, GUI apps. Steve Gibson at GRC comes to mind, too. 5-6MB is better
than many.

Anyway, I'm not sure what can be done with Boost: just too complicated. Maybe
replacing what you use in it with lightweight alternative. However, you could
see if you can replace OpenSSL with LibreSSL. OpenBSD team trimmed out
hundreds of KB of fat and problematic code out of OpenSSL when building it.
You get better security, too. :)

[http://www.libressl.org/](http://www.libressl.org/)

Note: Mac OS X already uses it. So, it must work decent by now.

