Sunday, November 13, 2011

Yet Another Bittorent Client


So, I want to learn C#. I have access to the Visual Studio IDE for writing the code in C#. So I though, the best way to go about it is to start writing your own application, a windows installer, which will obviously be open source. Now I wasn’t sure what kind of an application should I create. Then I thought of using the most widely used application on my machine after iTunes. This would be the Bit Torrent client. This is the official client; which obviously follows the latest protocols and all. This isn’t open sourced. They stopped open sourcing their app after version 5 or so it seems. This I've read from Wikipedia.

So, to make my bit torrent client (which for now I would like to call Yet Another Bit torrent Client - YABC), I needed to first understand the architecture that is usually used by these apps, and most important of all, understand the bit torrent protocol. This wouldn’t be easy. So I had a better idea, I thought, rather than investing time in understand the protocol as of now, I might as well borrow the code for the protocol from some other app which is under FOSS. But then again I had a problem.

All the apps which are currently popular and available are all written in python. The trouble is that python is a language I am totally not familiar with as of now. Also, I was planning to make an app through and through in C# and .NET. So I just Googled the best I could and lo behold – I found this - http://www.alhem.net/project/btpeer/index.html. This is the btPeer client which is solely written in C++. Now the thing is, I work in C++ full time and know the language well enough to be able to port an application from it to C#. Another plus is that there is already a project readily available for Visual Studio, thus I will only have to port the application directly to VS2010; using which, when I build the project, I should have to project ready.

I will register the project at SourceForge or Google Code and also maybe github so that the configuration part of the project is handled well. More on this as things progress. Later.

No comments:

Post a Comment