ICAP library implemented in Python.
Python Makefile
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
data
examples
icap
tests
.gitignore
LICENSE
Makefile
README

README

Python ICAP server implemented using asyncio. Contains classes for parsing and
handling ICAP requests, and higher-level objects for routing requests and
performing asynchronous operations.

Still very much in the early stages right now, although usable. API can be
considered reasonably stable.

TODO:
    - generated session IDs when X-Session-ID is not available.
    - Preview support
    - opt-body support
    - Cache-Control (prevent RESPMODs from lengthening expiration)
    - remove all hop-by-hop headers
    - ensure required authorization headers are preserved
    - Allow 206 support (see Squid option)
    - Automated parsing of multipart data (similar to POST parsing)
    - Lots more logging.
    - Streaming body support. ICAP supports the idea of early returns, so
      theoretically this is possible. It would be great to do this with
      coroutines.
    - Allow for particularly horrible yet perfectly valid HTTP.
    - SSL
    - Replace assertions with proper exceptions.
    - some operations need to run in threads/processes to prevent blocking the
      proactor (e.g. gzip encoding/decoding). Providing a nice wrapper
      interface on asyncio's process/thread deferral code would be good.