Hi there guys,
After 1 year of development and refinements I'm pleased to announce a 
release of pyftpdlib which appears to be one of the fastest FTP server out 
there! See:
http://code.google.com/p/pyftpdlib/wiki/Benchmarks

1.0.0 release introduces serious improvements amongst which python 3
support (finally!) and full Unicode support.  Here's the major ones.


=== New IO loop and epoll() / kqueue() support ===

The IO loop, originally relying on asyncore, has been rewritten from 
scratch 
(http://code.google.com/p/pyftpdlib/source/browse/trunk/pyftpdlib/ioloop.py) 
and now supports epoll() on Linux and kqueue() on OSX/BSD.
Also select() (Windows) and poll() pollers have been rewritten resulting in 
pyftpdlib being an order of magnitude faster and more scalable than ever. 
Read the full story here:
http://code.google.com/p/pyftpdlib/issues/detail?id=203

=== Alternative concurrency model ===

It is now possible to change the default concurrency model from async (non 
blocking) to multiple processes / threads based, meaning you are now free 
to block as long as you want and support particularly slow filesystems.
Switching is as easy as changing an import. More information here:
http://code.google.com/p/pyftpdlib/wiki/Tutorial#4.6_-_Changing_the_concurrency_model

=== Python 3 porting + full Unicode support ===

Finally!

=== Logging ===

logging module is now used for logging as replacement for log(), logline() 
and logerror() functions which are now deprecated. Also, the whole logging 
infrastructure has been refactored and it is more compact and consistent. 
Also by default pyftpdlib logs will have
colors.

=== Other improvements ===

 * a new FilesystemError exception class is available in order send
   custom error strings to client from an AbstracteFS subclass.

 * on_connect() and on_disconnect() callbacks

 * FTPHandler.ftp_* methods implementing filesystem-related commands
   now return a meaningful value on success (tipically the path name).

 * FTPServer.serve_forever() has a new handle_exit parameter which
   can be set to False in order to avoid handling SIGTERM/SIGINT signals.

=== Backward compatibility breakage ===

A lot of backward incompatible changes have been introduced amongst which 
the different import system, the different validate_authentication() 
signature and the fact that the filesystem class now expects Unicode 
strings rather than bytes. HISTORY file enlists all of them and also 
provides a guide on how to port your existent to this new version.
http://code.google.com/p/pyftpdlib/source/browse/trunk/HISTORY?spec=svn1175&r=1172#85


=== Some links ===

Home: http://code.google.com/p/pyftpdlib/
Download: http://code.google.com/p/pyftpdlib/list/downloads
Tutorial: http://code.google.com/p/pyftpdlib/wiki/Tutorial
Complete list of changes: 
http://code.google.com/p/pyftpdlib/source/browse/trunk/HISTORY


That should be all folks.
I hope you'll enjoy this new version,

Giampaolo Rodola'

-- 
You received this message because you are subscribed to the Google Groups 
"Python Ireland" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/groups/opt_out.


Reply via email to