rails/rails
Dependencies
What each component requires at runtime, plus the dev/test stack.
Runtime dependencies (per gemspec)
The component gemspecs declare their hard runtime dependencies. These are the gems an application will install when it adds the component to its Gemfile.
activesupport
i18n(for translation)tzinfo(time zone data)concurrent-ruby(concurrency primitives)connection_poolminitest(becauseActiveSupport::TestCaseis built on it)securerandomuseragentbenchmarkloggerbase64bigdecimaldrbmutex_m
activemodel
activesupport(same version)
activerecord
activesupport,activemodel(same version)timeout
actionpack
activesupport(same version)actionview(same version)nokogiriraccrack(>= 2.2.4, < 4)rack-sessionrack-testrails-dom-testingrails-html-sanitizeruseragent
actionview
activesupport(same version)builder(XML builder)erubi(ERB compiler)rails-dom-testingrails-html-sanitizer
actionmailer
actionpack,actionview,activejob,activesupport(same version)mail(the SMTP / message DSL)rails-dom-testing
actionmailbox
actionpack,activejob,activerecord,activestorage,activesupport(same version)mail
activejob
activesupport(same version)globalid(Active Record argument serialization)
actioncable
actionpack(same version)activesupport(same version)nio4r(event-driven IO)websocket-driverzeitwerk
activestorage
activerecord,activejob,actionpack,activesupport(same version)marcel(MIME-type detection)
actiontext
actionpack,activerecord,activestorage,activesupport,globalid(same version)nokogiri
railties
activesupport,actionpack(same version)rackuprakethormethod_sourceirb(forbin/rails console)zeitwerk
rails (meta-gem)
- All 12 components at the same version.
bundler(>= 1.15.0).
Dev / test dependencies
The top-level Gemfile adds tools used to develop on the framework:
- Test framework:
minitest,minitest-mock - System tests:
capybara,selenium-webdriver - Browser & web server:
puma,rack-cache - JavaScript / asset stacks (for testing integrations):
sprockets-rails,propshaft,stimulus-rails,turbo-rails,jsbundling-rails,cssbundling-rails,importmap-rails,tailwindcss-rails,dartsass-rails - Solid stack (Rails 8 defaults):
solid_cache,solid_queue,solid_cable - Deployment:
kamal,thruster - Auth helpers (optional):
bcrypt,argon2(bothrequire: false) - Misc:
terser,json,uri,prism - Lint:
rubocop,rubocop-minitest,rubocop-packaging, plus an in-reporubocop-railsplugin - Releaser:
releaser(path:tools/releaser) - Database adapters:
sqlite3,mysql2,trilogy,pg(each declared inactiverecord/Gemfilewith conditional installation) - Cloud SDKs:
aws-sdk-s3,google-cloud-storage,image_processing(inactivestorage/Gemfile, optional) - Mail providers: various
mail-*gems used in mailbox tests
The Gemfile.lock resolves to ~1,000 lines.
Optional database drivers
Active Record ships adapters for sqlite3, postgresql, mysql2, and trilogy. The corresponding gem (sqlite3, pg, mysql2, trilogy) must be in the host application's Gemfile. Active Record itself does not depend on any database driver.
JavaScript packages
A few components ship JS:
actioncable— published as@rails/actioncableon npm (actioncable/package.json).activestorage— published as@rails/activestorage.actiontext— published as@rails/actiontext.actionview— ships UJS helpers via@rails/ujs(separate package).
Each component's package.json defines its own dependencies. The build is driven by Rollup (rollup.config.js).
Linting tools
- RuboCop 1.79.2 (pinned in
Gemfile). - Markdown lint via
mdlwith.mdlrc.rb. - ESLint for JavaScript via
eslint.config.mjs.
Updating dependencies
- Per-component gemspec changes are made in
<component>/<component>.gemspec. - Top-level dev dependencies are in
Gemfile. - Update
Gemfile.lockviabundle updateorbundle update <gem>. - New gem dependencies typically require a release-notes entry and a changelog mention.
Related pages
Built by Factory AutoWiki from public repository content. It is a generated preview for codebase exploration, not source-maintained documentation.