From mboxrd@z Thu Jan 1 00:00:00 1970 Delivered-To: chneukirchen@gmail.com Received: by 10.204.72.79 with SMTP id l15cs777994bkj; Thu, 13 Aug 2009 10:18:22 -0700 (PDT) Received-SPF: pass (google.com: domain of grbounce-ceibQwUAAAB4YPBqaDIjI2bFOCxyyh3G=chneukirchen=gmail.com@googlegroups.com designates 10.224.91.211 as permitted sender) client-ip=10.224.91.211; Authentication-Results: mr.google.com; spf=pass (google.com: domain of grbounce-ceibQwUAAAB4YPBqaDIjI2bFOCxyyh3G=chneukirchen=gmail.com@googlegroups.com designates 10.224.91.211 as permitted sender) smtp.mail=grbounce-ceibQwUAAAB4YPBqaDIjI2bFOCxyyh3G=chneukirchen=gmail.com@googlegroups.com; dkim=pass header.i=grbounce-ceibQwUAAAB4YPBqaDIjI2bFOCxyyh3G=chneukirchen=gmail.com@googlegroups.com Received: from mr.google.com ([10.224.91.211]) by 10.224.91.211 with SMTP id o19mr1830898qam.20.1250183900486 (num_hops = 1); Thu, 13 Aug 2009 10:18:20 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=googlegroups.com; s=beta; h=domainkey-signature:received:received:x-sender:x-apparently-to :received:received:received-spf:authentication-results:received :dkim-signature:domainkey-signature:received:received:message-id :date:from:user-agent:mime-version:to:subject:references:in-reply-to :content-type:reply-to:sender:precedence:x-google-loop:mailing-list :list-id:list-post:list-help:list-unsubscribe:x-beenthere-env :x-beenthere; bh=DPWoyFiECUcw+tAw1HTHE2zXQ2IprXsIrk6zFGQ8kBU=; b=AumZgukuWmzTTS6270eNduF/zNXb+h2ZuXNep5ttTZ1Ny477R8yy5FDynP+CSBnaq5 3UWY0foUFi4X0XCDCsrscw26lT49vEwO4R4Y08ytdFHN+tCO1AhsZ326u+yDf3Ety6FL do4hkJ8ENJ0eqzr50aMFfJBEmD48rKaTYRZKo= DomainKey-Signature: a=rsa-sha1; c=nofws; d=googlegroups.com; s=beta; h=x-sender:x-apparently-to:received-spf:authentication-results :dkim-signature:domainkey-signature:message-id:date:from:user-agent :mime-version:to:subject:references:in-reply-to:content-type :reply-to:sender:precedence:x-google-loop:mailing-list:list-id :list-post:list-help:list-unsubscribe:x-beenthere-env:x-beenthere; b=hL6lb78Eevl3hRo5Q+a/LSWzAWoxpbKK2eTuZY1ygfWOE1hxIvAJk6Kkw2lusv2bPU YYx52W4DV7+BTSX8O/8VyyomWfwBfjAgaB2NaHALaGYZJhhWJrOccIQxhWbHPcylB9+H RpYAzBmZfy1Ul9dMPF3IhqicwCF4bqUfztXJ8= Received: by 10.224.91.211 with SMTP id o19mr277713qam.20.1250183898762; Thu, 13 Aug 2009 10:18:18 -0700 (PDT) Received: by 10.176.48.40 with SMTP id v40gr1579yqv.0; Thu, 13 Aug 2009 10:18:04 -0700 (PDT) X-Sender: wycats@gmail.com X-Apparently-To: rack-devel@googlegroups.com Received: by 10.231.15.66 with SMTP id j2mr282595iba.6.1250183884219; Thu, 13 Aug 2009 10:18:04 -0700 (PDT) Return-Path: Received: from wf-out-1314.google.com (wf-out-1314.google.com [209.85.200.168]) by gmr-mx.google.com with ESMTP id k32si179849wah.5.2009.08.13.10.18.03; Thu, 13 Aug 2009 10:18:03 -0700 (PDT) Received-SPF: pass (google.com: domain of wycats@gmail.com designates 209.85.200.168 as permitted sender) client-ip=209.85.200.168; Authentication-Results: gmr-mx.google.com; spf=pass (google.com: domain of wycats@gmail.com designates 209.85.200.168 as permitted sender) smtp.mail=wycats@gmail.com; dkim=pass (test mode) header.i=@gmail.com Received: by wf-out-1314.google.com with SMTP id 24so266309wfg.7 for ; Thu, 13 Aug 2009 10:18:03 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:received:received:message-id:date:from :user-agent:mime-version:to:subject:references:in-reply-to :content-type; bh=0ITHqONk0FK/jMuuy/MPBTifgWx88v6r2KP3crAI3ag=; b=Z2tYZucoHdpE2/eMkQfoWUsSOjAUtgUSKKHOXuWoSrMjc0rJ4CzGnajB+bt4pBEm0p BvxFzloIGSTzzKiOXolBsKfTRXhrVnVPiyb+27Ktz6xnM2cb6muoEgnzs/PRUPrHpWzu 9H9d/99d7ymM1bYAQPkbIJlkQJngaCfCmOdbs= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=message-id:date:from:user-agent:mime-version:to:subject:references :in-reply-to:content-type; b=j9HdyBrf9fqZYxvYOQWddw1g8lZlRuT1anZJd3/++b/zpCV3gMlejkcfm6MVCxhZiK 9J2qU5FHCTefuMOaYZcVvUOYyhzI60rrfbXz7+tR7c91t6LeIUlNjWP3tHpmAMsiGhw9 PIMSHQaarTtTjU/vMf6n4jlHwUVhiLZIaWQSM= Received: by 10.143.4.11 with SMTP id g11mr12601wfi.242.1250183882072; Thu, 13 Aug 2009 10:18:02 -0700 (PDT) Return-Path: Received: from yehuda-katzs-macbookpro41.local ([204.14.153.98]) by mx.google.com with ESMTPS id 24sm1716073wff.6.2009.08.13.10.18.00 (version=TLSv1/SSLv3 cipher=RC4-MD5); Thu, 13 Aug 2009 10:18:01 -0700 (PDT) Message-ID: <4A844AC7.1020908@gmail.com> Date: Thu, 13 Aug 2009 10:17:59 -0700 From: Yehuda Katz User-Agent: Postbox 1.0b14 (Macintosh/2009072715) MIME-Version: 1.0 To: rack-devel@googlegroups.com Subject: Re: Bloat? References: <2a8d4a710908131004i2cef7cb7lc0be17ae7fe7619f@mail.gmail.com> In-Reply-To: <2a8d4a710908131004i2cef7cb7lc0be17ae7fe7619f@mail.gmail.com> Content-Type: multipart/alternative; boundary="------------000601050702000206020605" Reply-To: rack-devel@googlegroups.com Sender: rack-devel@googlegroups.com Precedence: bulk X-Google-Loop: groups Mailing-List: list rack-devel@googlegroups.com; contact rack-devel+owner@googlegroups.com List-Id: List-Post: List-Help: List-Unsubscribe: , X-BeenThere-Env: rack-devel@googlegroups.com X-BeenThere: rack-devel@googlegroups.com This is a multi-part message in MIME format. --------------000601050702000206020605 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit I think Rack::Request and Rack::Response are convenient, but they need to undergo a fairly extensive performance audit if they are to remain in rack-core. You might have seen that I did a bunch of performance work on Rails 3, and I got a lot of improvement by moving pieces of Rack::Response down into ActionDispatch::Response and rewriting them for performance. For instance, if people want a HeaderHash, they should probably have to specify that. Right now, there's no way to super to Rack::Response#initialize and avoid creating a fairly expensive HeaderHash. My approach would be that Rack::Response would be extremely simple and performant, and that if people wanted to add special functionality to it, they should do it themselves (and possibly call super). I'd be happy to supply patches if people were interested, but I'm not sure if everything could be 100% compatible with the existing Response. Which frameworks are using Rack::Response? -- Yehdua Matt Todd wrote: > I was talking to a friend of mine yesterday and he mentioned that > thought the Rack package itself seemed to be slightly bloated by > things like Basic Auth et al. He mentioned two things I thought were > interesting and I wanted to get your feedback on it: > > 1. Like Merb, Rack probably could benefit from using a core and more > separation of functionality, and > 2. Rack core should only include what's necessary for Rack::Lint to > validate a basic application at minimum. > > Thoughts? > > Matt > > -- > Matt Todd > Highgroove Studios > www.highgroove.com > cell: 404-314-2612 > blog: maraby.org > > Scout - Web Monitoring and Reporting Software > www.scoutapp.com --------------000601050702000206020605 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: 7bit I think Rack::Request and Rack::Response are convenient, but they need to undergo a fairly extensive performance audit if they are to remain in rack-core.

You might have seen that I did a bunch of performance work on Rails 3, and I got a lot of improvement by moving pieces of Rack::Response down into ActionDispatch::Response and rewriting them for performance. For instance, if people want a HeaderHash, they should probably have to specify that. Right now, there's no way to super to Rack::Response#initialize and avoid creating a fairly expensive HeaderHash.

My approach would be that Rack::Response would be extremely simple and performant, and that if people wanted to add special functionality to it, they should do it themselves (and possibly call super). I'd be happy to supply patches if people were interested, but I'm not sure if everything could be 100% compatible with the existing Response. Which frameworks are using Rack::Response?

-- Yehdua

Matt Todd wrote:
I was talking to a friend of mine yesterday and he mentioned that thought the Rack package itself seemed to be slightly bloated by things like Basic Auth et al. He mentioned two things I thought were interesting and I wanted to get your feedback on it:

1. Like Merb, Rack probably could benefit from using a core and more separation of functionality, and
2. Rack core should only include what's necessary for Rack::Lint to validate a basic application at minimum.

Thoughts?

Matt

--
Matt Todd
Highgroove Studios
www.highgroove.com
cell: 404-314-2612
blog: maraby.org

Scout - Web Monitoring and Reporting Software
www.scoutapp.com
--------------000601050702000206020605--