pftp

 

What is pftp?

Pftp means Paskma FTP server. It is a small simple FTP server written in Ada95. The purpose it was created is that author needed to test his knowledge on Ada95 "in the wild". So pftp is less or more experimental project. But the fact is that pftp is stable, reliable and secure program. If you have a huge web-hosting server with thousands of users, this is really not for you, but if you want to share some trivial gigabytes from your desktop computer to your friends, pftp is a good choice.

License

Public domain. You can modify and redistribute without any restrictions.

Features

Pftp implements FTP protocol as described in rfc-959 and rfc-775. Supports user accounts, directory mapping, full set of file/directory access rights. Pftp is a pure multithreaded system, so it is highly robust. When a task that serves a user fails, the user can immediately log on to another task. It is nearly impossible to make whole server go down.

Implementation

Pftp is about 4000 lines of source code written in programming language Ada95. Ada is one of the most robust and complex language ever created. It was designed for huge programs, so usage of this technology leads to more reliable applications as if it was written in C/C++. No access violations/segmentation faults and no buffer overflows.

Used programs and libraries

This project was compiled by GNAT compiler. The source code was written in AdaGide editor.

Of course, the standard Ada library was used. Also was used GNAT's libraries e.g. support for BSD sockets. Pftp is portable, but there is an optimalization for Win32 available.This optimalization uses Win32 API through GNAT-WIN library.

Supported operating systems

Pftp is portable to all OSs/architectures for which the GNAT compiler is available. And it is optimized for Win32 platform.

xpftp

Since pftp is a console application, it would be dowdy to have the console window on your desktop all the time pftp is running. Xpftp is a simple (500 lines) application for Windows written in Borland Delphi which substitutes the console by more friendly environment.

Content

(pftp source, xpftp source, windows binaries of pftp and xpftp, and Linux (RedHat 7.1 i686) binaries of pftp)

Author

Marek Paska, 2002 - 2003

paskma 'at' students 'dot' zcu 'dot' cz