Hi Chandru, I think there will be occasions -- e.g. replicating compressed 
attachments -- when we won't want to unzip the response body.  We are 
decompressing other gzipped responses using a little wrapper much like what you 
pasted below.  I suppose if ibrowse handled this directly it would save a few 
lines on our end.  All the best,

Adam

On Mar 2, 2010, at 6:39 PM, Chandru wrote:

> Hello everyone,
> 
> I'm the author and maintainer of ibrowse. I know you use ibrowse in CouchDB
> and I had an idea a couple of days ago.
> 
> Would it help improve performance if ibrowse supported receiving compressed
> data from the webserver but made it transparent to the calling process? It
> is simple enough for the caller to do (as shown below) it but would it help
> if ibrowse supported that natively?
> 
> get_url(Url) ->
>   case ibrowse:send_req(Url, [{"accept-encoding", "gzip"}], get,
>                          [], [{response_format, binary}]) of
>       {ok, "200", Headers, Body} ->
>            Headers_lc = [{string:to_lower(X), string:to_lower(Y)} || {X, Y}
> <- Headers],
>           Body_1 = case proplists:get_value("content-encoding", Headers_lc)
> of
>                         "gzip" ->
>                            zlib:gunzip(Body);
>                        _ ->
>                            Body
>                     end,
>           {ok, "200", Headers, Body_1};
>        Res ->
>           Res
>    end.
> 
> cheers
> Chandru

Reply via email to