https://github.com/nhoad/python-icap
ICAP library implemented in Python.
https://github.com/nhoad/python-icap
Last synced: about 1 year ago
JSON representation
ICAP library implemented in Python.
- Host: GitHub
- URL: https://github.com/nhoad/python-icap
- Owner: nhoad
- License: other
- Created: 2014-01-18T05:14:48.000Z (over 12 years ago)
- Default Branch: master
- Last Pushed: 2017-03-31T12:14:40.000Z (over 9 years ago)
- Last Synced: 2025-04-14T08:09:32.352Z (about 1 year ago)
- Language: Python
- Size: 205 KB
- Stars: 5
- Watchers: 1
- Forks: 5
- Open Issues: 3
-
Metadata Files:
- Readme: README
- License: LICENSE
Awesome Lists containing this project
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.