Here you are with a veeeery small bittorrent client: µTorrent.
At a glance (taken from the official website):
- Multiple simultaneous downloads
- Smart bandwidth usage
- File level priorities
- Configurable bandwidth scheduling
- Global and per-torrent speed limiting
- Quickly resumes interrupted transfers
- UPnP support (WinXP only)
- Supports popular protocol extensions
- Trackerless support (Mainline DHT)
- Localized to different languages
- Typical memory use less than 6 MB
- Incredibly small: 115 KB (slightly varies from each release but is still very small)
This is an amazing piece of software. It sits right in the directory where you place it. No need to install it. No registry keys added or modified (it just creates some files in the windows profile’s folder).
Where’s the big deal then? Well it’s less than 200 KB. That’s the deal. “Can great software live in 130 kilobytes?”
In the era of Java applications that take 100 megabytes of memory for a single application, I’m pretty much relieved anytime I see a native Win32 application that uses less than 20 megabytes of RAM.
and again
Unlike many sloppy applications that make a mess of the registry and shared DLL files in Windows, µTorrent didn’t even need to be installed! It just ran off of the tiny 100 KB executable and the only install it did was put a desktop shortcut to the executable. Once µTorrent loaded in a matter of milliseconds, it was ready to rock and contained itself in less than 5 megabytes of system memory which is insane by today’s standards.
Dudes… the world wide web is changing. I think that the way software is made should change too. A return to code optimization should be taken in serious consideration.
I cannot stand software like Azureus and Blogbridge: they’re fully featured and top notch applications, yeah… yet they take up tons of CPU and RAM just because they use Java and its insane virtual machine.
Digression on demos
I remember that when I was younger (!!!) I used to download and run “demos”. What a demo is then? It’s a software full of 3d/2d graphic, music and eventually interactivity. And there’s a category (in demo coding competitions that is) named “64k demo”. You got it: all that stuff packed inside a 64K executables.
I don’t pretend that now we all start coding in assembly and stuff like that… (by the way demos can take minutes to load, unpack in memory and run) but I think that these guys can teach us something about code optimization.
Lately I saw .kkrieger.. What’s that? A 3d first person shooter that sits in 96K. Here you are with some stunning graphic you can actually see in the “game”:

Now this is amazing! It takes ages to load and run, that’s right… but when it does… dudes… you’re watching a 96k file!
I’m amazed by these guys and I’m taking in serious consideration the idea of being present at the Assembly ‘06 just to see some weird stuff and people. It will take place in Helsinki, Finland from Thursday 3rd to Sunday 6th of August 2006.
Useful Links
µTorrent related
µTorrent - The microsized bittorrent client.
Can great software live in 130 kilobytes? - a zdnet article about the small code - great feature app that µTorrent is.
demos and “scene” related
scene.org - A great resource to get started with “the scene” world
.theprodukkt. - The dudes behind .kkrieger.



One Comment
Great post!
I’ve read that µTorrent thang but I currently use BitLord which I find fast, reliable and uber-fast (could be faster if I had other ISP, though).
About that game, I already had heard of it as well but now I’m going to try it :D