Metadata-Version: 1.1
Name: butter
Version: 0.8
Summary: Library to interface to low level linux features
Home-page: http://code.pocketnix.org/butter/file/tip
Author: Da_Blitz
Author-email: code@pocketnix.org
License: MIT BSD
Download-URL: http://code.pocketnix.org/butter/archive/tip.tar.bz2
Description: ========
         Butter
        ========
        Butter is a library to integrate some of Linux's low level features into python
        eg signalfd, eventfd and timerfd. most of these functions are handy if you are 
        looking into creating non-blocking servers, anything using select/poll and 
        derivatives or writing server code
        
        Whats Available
        ----------------
         * inotify (Complete support, includes asyncio support)
         * seccomp (Limited support)
         * fanotify (Limited support, includes asyncio support)
         * splice
         * tee
         * vmsplice
         * gethostname
         * sethostname
         * mount
         * umount
         * pivot_root
         * getpid (bypasses glibc caching)
         * getppid (bypasses glibc caching)
        
        Whats Coming
        -------------
        Most of these exist in v0.2 as ctypes code. these are currently being rewritten
        to use cffi for speed and compatibility with pypy
        
         * signalfd
         * eventfd
         * timerfd
         * posix/linux aio (scatter/gather read writes with a completion based API 
           instead of a 'ready' based interface, eg similar to IOCP on windows)
        
        Supported Python
        -----------------
        Butter currently supported the following python interpreters
        
        * pypy (2.7 and 3.2 python implementations)
        * cpython 3.4 (required for asyncio support)
        * cpython 3.x
        * cpython 2.7
        
        Butter may work on older versions however it has not been tested on anything 
        except the above interpreters and may break without warning
        
        Design
        -------
        The 'fd' apis have been designed first as thin wrappers around the underlying
        kernel syscalls. A File-like object that then uses these syscalls is then made 
        available that obeys the 'event like' interface and is based on the interface
        provided by File and friends. They are intended to be drop in replacements and 
        be used with the select module
        
        Event-like objects
        +++++++++++++++++++
        Event like objects are identical to filelike objects except they have the 
        following extra methods to replace the disabled read/readline/write/writeline
        functionality
        
         * read_event:  Return a single event
         * read_events: Return all cached events OR read all events from the kernel
        
        AsyncIO
        ++++++++
        Some syscalls (ones that deal with fd's) have been made to work with the 
        asyncio framework that baecame avalible in python3.4. The asyncio enabled
        object is named after the normal Event-like object equivlent with '_async'
        after it, eg Inotify => Inotify_async. These asyncio Eventlike objects are
        designed to act and behave like the asyncio.Queue object without the ability
        to write events to the queue (ie they can only be read from and events are
        injected from the fd as required)
        
        
Keywords: linux splice tee fanotify inotify clone unshare
Platform: UNKNOWN
Classifier: Programming Language :: Python :: 3
Classifier: License :: OSI Approved :: BSD License
Classifier: Operating System :: POSIX :: Linux
Classifier: Programming Language :: Python :: 3.4
Classifier: Programming Language :: Python :: 2.7
Classifier: Programming Language :: Python :: Implementation :: PyPy
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Classifier: Topic :: System :: Monitoring
Classifier: Topic :: System :: Systems Administration
Classifier: Development Status :: 5 - Production/Stable
Classifier: Intended Audience :: System Administrators
Classifier: Intended Audience :: Developers
