Join GitHub today
GitHub is home to over 28 million developers working together to host and review code, manage projects, and build software together.Sign up
Fetching latest commit…
Cannot retrieve the latest commit at this time.
|Failed to load latest commit information.|
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.