ANN: pyftpdlib 0.7.0 released

Discussion in 'Python' started by Giampaolo Rodolà, Jan 25, 2012.

  1. Hi,
    I'm pleased to announce release 0.7.0 of Python FTP Server library (pyftpdlib).
    http://code.google.com/p/pyftpdlib/

    === About ===

    Python FTP server library provides an high-level portable interface to
    easily write asynchronous FTP/S servers with Python. pyftpdlib is
    currently the most complete RFC-959 FTP server implementation
    available for Python programming language.

    === sendfile() ===

    sendfile(2) system call usage has finally been introduced. sendfile(2)
    provides a "zero-copy" way of copying data from one file descriptor to
    another (a socket). The phrase "zero-copy" refers to the fact that all
    of the copying of data between the two descriptors is done entirely by
    the kernel, with no copying of data into userspace buffers, resuting
    in file transfers (RETR, hence from server to client) being from 2x to
    3x faster.

    A simple benchmark:

    pyftpdlib 0.6.0: 693.41 MB/sec
    pyftpdlib 0.7.0: 1694.14 MB/sec
    proftpd 1.3.4rc2: 1313.77 MB/sec
    vsftpd 2.3.2: 1505.18 MB/sec

    In order to use sendfile(2) you'll have to install pysendfile module
    first (UNIX only):
    http://code.google.com/p/pysendfile/

    === Faster scheduler ===

    The internal scheduler, governed by CallLater and CallEvery classes,
    has been rewritten from scratch and it is an order of magnitue faster,
    especially for operations like cancel() which are involved when
    clients are disconnected (hence invoked very often). Some benchmarks:

    schedule: +0.5x
    reschedule: +1.7x
    cancel: +477x (with 1 milion scheduled functions)
    run: +8x

    Also, a single scheduled function now consumes 1/3 of the memory
    thanks to __slots__ usage.
    For further details see: http://code.google.com/p/pyftpdlib/issues/detail?id=189

    === SITE CHMOD ===

    This new version supports SITE CHMOD command, meaning the client is
    now able to change file mode bits by issuing "SITE CHMOD path mode"
    command. The authorizer now accepts a new "M" permission bit, which,
    when specified, enables SITE CHMOD usage:

    >>> authorizer = DummyAuthorizer()
    >>> authorizer.add_user('user', 'password', '/home/user', perm='elradfmwM')


    === Other improvements ===

    * on_failed_login() callback: this is called when user provides wrong
    credentials.
    * CallEvery class: same as CallLater, but keeps calling a function
    every X seconds.
    * A benchmark script:
    http://code.google.com/p/pyftpdlib/source/browse/trunk/test/bench.py
    * Anti flood demo script:
    http://pyftpdlib.googlecode.com/svn/trunk/demo/anti_flood_ftpd.py

    A complete list of changes including enhancements and bug fixes is
    available here:
    http://code.google.com/p/pyftpdlib/wiki/ReleaseNotes07

    === More links ===

    * Source tarball: http://pyftpdlib.googlecode.com/files/pyftpdlib-0.7.0.tar.gz
    * Online docs: http://code.google.com/p/pyftpdlib/wiki/Tutorial
    * FAQs: http://code.google.com/p/pyftpdlib/wiki/FAQ
    * RFCs compliance paper: http://code.google.com/p/pyftpdlib/wiki/RFCsCompliance
    * Issue tracker: http://code.google.com/p/pyftpdlib/issues/list

    If you think pyftpdlib is worth a donation you can do so by going here:
    http://code.google.com/p/pyftpdlib/wiki/Donate

    Thanks,

    --- Giampaolo Rodola'
    http://code.google.com/p/pyftpdlib/
    http://code.google.com/p/psutil/
    http://code.google.com/p/pysendfile/
     
    Giampaolo Rodolà, Jan 25, 2012
    #1
    1. Advertising

Want to reply to this thread or ask your own question?

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. billiejoex

    ANN: pyftpdlib 0.1 released

    billiejoex, Mar 5, 2007, in forum: Python
    Replies:
    0
    Views:
    249
    billiejoex
    Mar 5, 2007
  2. billiejoex

    ANN: pyftpdlib 0.1 released

    billiejoex, Mar 5, 2007, in forum: Python
    Replies:
    0
    Views:
    250
    billiejoex
    Mar 5, 2007
  3. billiejoex

    ANN: pyftpdlib 0.1 released

    billiejoex, Mar 5, 2007, in forum: Python
    Replies:
    3
    Views:
    250
    Duncan Booth
    Mar 5, 2007
  4. =?iso-8859-1?q?Giampaolo_Rodol=E0?=

    ANN: Python FTP Server library (pyftpdlib) 0.2.0 released

    =?iso-8859-1?q?Giampaolo_Rodol=E0?=, Sep 17, 2007, in forum: Python
    Replies:
    0
    Views:
    316
    =?iso-8859-1?q?Giampaolo_Rodol=E0?=
    Sep 17, 2007
  5. Giampaolo Rodola'
    Replies:
    0
    Views:
    253
    Giampaolo Rodola'
    May 16, 2008
Loading...

Share This Page