Skip to content

mcfletch/python-icap

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

133 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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.

About

ICAP library implemented in Python.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • Python 99.5%
  • Makefile 0.5%