Project of the Month, November 2003

FileZilla

FileZilla, a secure FTP client, is an excellent open-source success story. The program was started two years ago in Germany by a computer science student named Tim Kosse. While working on his degree, Tim began to write a simple FTP program for a class assignment. After the class was completed, Tim continued to improve upon the code base. Eventually he chose to host it on SourceForge.net. With feedback and support from the SourceForge.net community, Tim's code and FileZilla's feature set continued to improve. Today, program has a thriving user base and a large community of devotees around the world. The project is now ranked in the top 15 projects (out of 70,000) on the site and has more than 4,000 downloads daily. The SF.NET team is very proud to make FileZilla our November 2003 project of the month.

Project Name: FileZilla
Founded / Started:
February 2001

URL: http://filezilla.sourceforge.net/
Project page: https://sourceforge.net/projects/filezilla/

Description of project:
FileZilla is an FTP/SFTP client for Windows. It can act as a site manager, and offers multiple simultaneously transfers, SSL and Kerberos GSS authentication/encryption, great speed, and a simple interface.

FileZilla Server, which is still in beta, is a reliable FTP server that offers features like a remote administration interface, user groups, and rules-based speed limits.

FileZilla competes well with all major commercial FTP clients. Very few free (as in freedom) Windows FTP clients exist and none of them (except FileZilla) is above average.

Trove info:

  • Development Status: 5 - Production/Stable
  • Environment: Win32 (MS Windows)
  • Intended Audience: Developers, End Users/Desktop
  • License: GNU General Public License (GPL)
  • Natural Language: English, French, German, Hungarian, Polish, Spanish
  • Operating System: Windows 95/98/2000, Windows NT/2000
  • Programming Language: C++
  • Topic: File Transfer Protocol (FTP)

How did you get started?
In the second week of January 2001 two friends and I found our Computer Science class assignment (write a 4-in-a-row clone) too simple. We started to write an FTP client instead. One of the first things we discussed was a name. We discovered very early that there was no good name with FTP in it that wasn't already taken. I can't remember who came up with it first, but as soon as some said FileZilla we knew that our child had a name.

Another important decision was the license under which we would publish FileZilla. There were already dozens of commercial FTP clients, ranging from cheap small tools to huge monster applications. We didn't think we would have much success with FileZilla, so a commercial license would have no benefit for us, and we decided to publish FileZilla under the GPL.

What is the intended audience?
The intended audience is every Windows user who wants to use graphical FTP software. Complete beginners, as well as FTP gurus, can use FileZilla, thanks to its simple interface and rich set of features.

How many people do you believe are using your software?
If I had to make a rough guess, I would say around 100,000 people, but that could be totally wrong. FileZilla is used by several universities, including MIT. A lot of download sites offer it, and at least one magazine has put it on their cover CD.

What gave you an indication that your project was becoming successful?
There were a lot of indications. The most obvious one was the increasing download counts each month. The amount of feedback increased, and most of it was very positive. I got email messages asking, "Where do I have to send the pizza?" as well offers to buy me a beer if I ever visit the town of the sender. I also got a lot of more or less serious offers to help.

What has been your biggest surprise?
The biggest surprise for me was how successful FileZilla had become. I never expected anything like this.

What has been your biggest challenge?
Support. I could spend all day answering support and feature requests, bug reports, and other questions. As you can tell by the large number of open requests and bug reports on the project page, I can't keep up with the number of requests I get each day. Finding and fixing bugs is a challenging task.

Implementing some features was also challenging, like SSL/GSS/proxy support, for which I had to write a nice socket wrapper with layer support. The directory listing parser was a big challenge; each server sends directory listings in its own format, and to recognize them all is very difficult.

Writing FileZilla Server wasn't easy either, including the whole permissions system or the system service and remote administration interface. But I had a great time implementing all these features. I had to research a lot of things before I could even start and I learned a lot in the process. And finally, another nightmare for me is writing documentation.

What are you most proud of?
I'm really proud of how far FileZilla has evolved and how successful it has become. It's great to see people use and like your product. I was also glad to learn a lot about network programming and software development in general.

Why do you think your project has been so well received?
One of the reasons is FileZilla's simple user interface, with the quickconnect bar and the Explorer-like file lists and folder trees. Even if you know nothing about FTP, you can start exchanging files within seconds. My thanks also go to the people who recommended FileZilla, put it on their download sites and CD-ROMs, or wrote a review. They all helped FileZilla become more successful.

Where do you see your project going?
There's currently only one major flaw I have to fix: FileZilla is for Windows only. I'm planning to create a cross-platform version. I'll rewrite large parts of FileZilla; as with every software project that grows over time, with added functionality the old architecture becomes insufficient and a lot of hacks blow up the code. A rewrite will help streamline the interfaces and class definitions. Other than that I'll keep improving FileZilla by adding features and fixing bugs.

How can others contribute?
Sending bug reports, feature requests, and other types of feedback is the most obvious way. It's also possible to donate a small amount using PayPal. Another option is to become project member. The different jobs available include translator, developer, support manager (I could really use one), and doc writer. The only requirement is to be active and stay active. It's disappointing when a new member stays active for only a very short time or does almost nothing.

Do you work on FileZilla full-time, or do you have another job?
Well, I'm studying Computer Science, which gives me quite a lot of time to spend with other things. I spend most of my free time on FileZilla. There have been weeks I've worked 'round the clock and there have been weeks I've spend less than five hours on the project.

How do you coordinate the project?
So far coordinating the development has been quite easy. I discussed with the additional developers which features they wanted to implement. For the translators I created language file templates and kept them up-to-date. Whenever new code or anything else is checked in or sent to me, I carefully review and test it. Since I using FileZilla every day, I find most freshly introduced bugs.

What is your development environment like?

  • Dell Inspiron 8200 notebook: P4m 1.6GHz, 512MB RAM, 15-inch UXGA Display (1600x1200 resolution)
  • MS Visual C++ 6 (I don't like the interface of VC 7 and 7.1)
  • NSIS to compile the installer
  • TortoiseCVS (hosted on SourceForge.net)
  • most used libraries: MS Platform SDK, MFC, STLport
  • and most important: Winamp. I can't work if it's too quiet. I listen mainly to free music by independent musicians, Weird Al, and a huge collection of over 5,000 chiptunes and classical music.

If you could change one thing about the project, what would it be?
That's a difficult question. If I had known how much support work I would have, I would have searched for good support manager right from the beginning. I also wish I had modularized the FTP engine and user interface much more, including an interface that is much easier to extend than the current one.

What's on your project wish list?
Some things which are on my to-do list are:

  • SSL support for FileZilla Server
  • TLS support for both the client and server
  • A cross-platform version. I get an increasing number if requests for this 'feature.' I'll also use this to streamline large parts of FileZilla.

Most of the items in the feature request tracker will also be implemented sooner or later. For each release I'm implementing at least one highly requested feature.

Milestones

  • 2001-02-27 - Project registers at SN.NET, release of the first alpha version
  • 2001-04-11 - First beta release
  • 2001-06-12 - Version 1.0
  • 2001-07-02 - First beta of FileZilla Server
  • 2001-07-27 - Added Kerberos GSS authentication and encryption to the client for use at MIT
  • 2002-03-17 - SSL support
  • 2002-07-06 - SFTP support using PuTTY
  • 2002-09-02 - Added the ability to transfer multiple files simultaneously in version 2.0
  • 2003-05-29 - Support for Kerberos GSSAPI authentication in FileZilla Server


More projects of the month


Project Name: FileZilla

Background of leaders:

Name: Tim KosseTim Kosse
Age: 22
Education: Currently studying Computer Science (Dipl.) at the RWTH Aachen
Location: Aachen, Germany

Why did you place the project on SF.NET?
I knew of SF.NET for some time before starting with FileZilla. When I began I only needed SourceForge's free hosting for the project and the files, but over time I've started using more features.

How has SF.NET helped you?
SF.NET has made hosting FileZilla very easy. In addition to that, every time I need software for a specific task I first look here on SF.NET, and very often I can find a project that fulfills my needs.

The number one benefit of SF.NET for your project is:
It's hard to choose just one. The free hosting, the CVS repository, or the trackers -- all of them are extremely useful services. I wouldn't like to do without any of them.