raggi@mbk: ~/dev/ext/rack % du -sh lib/
296K lib/

And...

raggi@mbk: ~/dev/ext/rack % g grep autoload
bin/rackup:autoload :Rack, 'rack'
lib/rack.rb:# All modules meant for use in your application are <tt>autoload</tt>ed here,
lib/rack.rb:  autoload :Builder, "rack/builder"
lib/rack.rb:  autoload :Cascade, "rack/cascade"
lib/rack.rb:  autoload :Chunked, "rack/chunked"
lib/rack.rb:  autoload :CommonLogger, "rack/commonlogger"
lib/rack.rb:  autoload :ConditionalGet, "rack/conditionalget"
lib/rack.rb:  autoload :Const, "rack/constants"
lib/rack.rb:  autoload :ContentLength, "rack/content_length"
lib/rack.rb:  autoload :ContentType, "rack/content_type"
lib/rack.rb:  autoload :File, "rack/file"
lib/rack.rb:  autoload :Deflater, "rack/deflater"
lib/rack.rb:  autoload :Directory, "rack/directory"
lib/rack.rb:  autoload :ForwardRequest, "rack/recursive"
lib/rack.rb:  autoload :Handler, "rack/handler"
lib/rack.rb:  autoload :Head, "rack/head"
lib/rack.rb:  autoload :Lint, "rack/lint"
lib/rack.rb:  autoload :Lock, "rack/lock"
lib/rack.rb:  autoload :MethodOverride, "rack/methodoverride"
lib/rack.rb:  autoload :Mime, "rack/mime"
lib/rack.rb:  autoload :Recursive, "rack/recursive"
lib/rack.rb:  autoload :Reloader, "rack/reloader"
lib/rack.rb:  autoload :ShowExceptions, "rack/showexceptions"
lib/rack.rb:  autoload :ShowStatus, "rack/showstatus"
lib/rack.rb:  autoload :Static, "rack/static"
lib/rack.rb:  autoload :URLMap, "rack/urlmap"
lib/rack.rb:  autoload :Utils, "rack/utils"
lib/rack.rb:  autoload :MockRequest, "rack/mock"
lib/rack.rb:  autoload :MockResponse, "rack/mock"
lib/rack.rb:  autoload :Request, "rack/request"
lib/rack.rb:  autoload :Response, "rack/response"
lib/rack.rb:    autoload :Basic, "rack/auth/basic"
lib/rack.rb:    autoload :AbstractRequest, "rack/auth/abstract/request"
lib/rack.rb:    autoload :AbstractHandler, "rack/auth/abstract/handler"
lib/rack.rb:    autoload :OpenID, "rack/auth/openid"
lib/rack.rb:      autoload :MD5, "rack/auth/digest/md5"
lib/rack.rb:      autoload :Nonce, "rack/auth/digest/nonce"
lib/rack.rb:      autoload :Params, "rack/auth/digest/params"
lib/rack.rb:      autoload :Request, "rack/auth/digest/request"
lib/rack.rb:    autoload :Cookie, "rack/session/cookie"
lib/rack.rb:    autoload :Pool, "rack/session/pool"
lib/rack.rb:    autoload :Memcache, "rack/session/memcache"
lib/rack.rb:    autoload :Camping, "rack/adapter/camping"
lib/rack/handler.rb:    autoload :CGI, "rack/handler/cgi"
lib/rack/handler.rb:    autoload :FastCGI, "rack/handler/fastcgi"
lib/rack/handler.rb:    autoload :Mongrel, "rack/handler/mongrel"
lib/rack/handler.rb:    autoload :EventedMongrel, "rack/handler/evented_mongrel"
lib/rack/handler.rb:    autoload :SwiftipliedMongrel, "rack/handler/swiftiplied_mongrel"
lib/rack/handler.rb:    autoload :WEBrick, "rack/handler/webrick"
lib/rack/handler.rb:    autoload :LSWS, "rack/handler/lsws"
lib/rack/handler.rb:    autoload :SCGI, "rack/handler/scgi"
lib/rack/handler.rb:    autoload :Thin, "rack/handler/thin"


I don't think we have a bloat problem. I think you're judging bloat the wrong way.


On 13 Aug 2009, at 18:04, 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