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 autoloaded 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