Project Description
MonoTorrent WebUI project brings a web based user interface for this BitTorrent library. The actual UI used is µTorrent's WebUI and the project's main contribution is an adaptor between the two.

Motivation
Inspiration came from wanting to to run a BitTorrent client on a headless FreeBSD server. After trying some other solutions (e.g. TorrentFlux, MLDonkey, Transmission) I found them unsatisfactory in one way or another: lacking features, inactivity, etc. So that's why you're reading this page.
Also it sounded like an interesting project.

Technologies
  • MonoTorrent library
  • µTorrent's WebUI
  • Json.NET library (.NET 2.0 version)
    • WebUI uses JSON (JavaScript Object Notation) instead of XML for communication.
  • .NET Framework 2.0
    • Maintaining compatibility with Mono is a high priority. (this hasn't been an issue so far)
    • The WebUI server is implemented using the System.Net.HttpListener class.

Rationale
  • Why BitTorrent?
    • Because that's what I use the most. Also refer back to "Motivation" section.
  • Why .NET/Mono?
    • It's my preferred platform for development, not much more to it.
  • Why MonoTorrent?
    • It's written in C# and has a good interface.
    • Actively maintained and tested.
    • Supports the basics plus the advanced features like DHT, Peer Exchange, encryption, and web seeding.
  • Why µTorrent WebUI?
    • Looks very nice, dare I say it's the best web-based UI out there for this purpose.
    • Easy enough to integrate with.
  • Why Json.NET?
    • Fast, works, easy to use.

Special Thanks to...
  • Alan McGovern for his excellent work on MonoTorrent.
  • Directix et al. for developing WebUI, and Ultima for the Web UI API thread.
  • Alan (last name unknown) for the BCBC Project. Although the project now seems to be abandoned it was what inspired me to use the WebUI in the first place and was helpful as a reference.

Last edited Jun 22, 2009 at 8:16 PM by sergueim, version 8