It was born of a few frustrations I had with the then (as now) dominant P2P content distribution technology, BitTorrent.
In no particular order, these frustrations were:
- BitTorrent downloads pieces of files in a random order, meaning you need to wait for the entire file to download before it can be presented to the user (ie. no streaming video or audio)
- To be fully effective, BitTorrent requires you to tinker with your firewall, a task beyond the capabilities of many users
- BitTorrent creates a separate P2P network for each file download, limiting the benefits of a network effect
- Distributing a file over BitTorrent requires use of a “tracker”, which can be a pain to set up
Dijjer addressed these issues in what I still consider to be a very elegant way:
- To publish a file on Dijjer, you just put it on an ordinary web-server, and point people to it through Dijjer (a bit like Coral but P2P).
- Dijjer streams files directly to a HTTP client, starting at the beginning. This means that you can start watching a video or listening to an audio file as it is downloaded from Dijjer. It also means that things embedded in web pages can be downloaded through Dijjer seamlessly.
- Dijjer employs a novel “small world”-based routing algorithm to create one global unified P2P network for file distribution, rather than separate networks for each file. This means that suddenly popular new files can be distributed quickly.
- Dijjer employs simple firewall “hole-punching” techniques to seamlessly work through firewalls without having to re-configure them.
We released the first version of Dijjer in early 2005, but by then it was clear that Revver wouldn’t need a P2P system, we’d just be distributing files from a centralized web server like everyone else. As a result, we were forced to shift our focus away from Dijjer, and nobody really did much with it since then.
Recently I decided it was time to revive the project, but I knew I’d need to find someone else to take the reigns as I’ve just got too much going on myself. To ease the transition, I’ve now migrated the Dijjer project over to the excellent Google Code system for hosting free software projects.
If you are a Java coder who might be interested in the fun challenge of taking over the Dijjer project, please get in touch with me (ian AT locut DOT us).