Open-Source Wikis

/

Ruby on Rails

/

Reference

/

Dependencies

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_pool
  • minitest (because ActiveSupport::TestCase is built on it)
  • securerandom
  • useragent
  • benchmark
  • logger
  • base64
  • bigdecimal
  • drb
  • mutex_m

activemodel

  • activesupport (same version)

activerecord

  • activesupport, activemodel (same version)
  • timeout

actionpack

  • activesupport (same version)
  • actionview (same version)
  • nokogiri
  • racc
  • rack (>= 2.2.4, < 4)
  • rack-session
  • rack-test
  • rails-dom-testing
  • rails-html-sanitizer
  • useragent

actionview

  • activesupport (same version)
  • builder (XML builder)
  • erubi (ERB compiler)
  • rails-dom-testing
  • rails-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-driver
  • zeitwerk

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)
  • rackup
  • rake
  • thor
  • method_source
  • irb (for bin/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 (both require: false)
  • Misc: terser, json, uri, prism
  • Lint: rubocop, rubocop-minitest, rubocop-packaging, plus an in-repo rubocop-rails plugin
  • Releaser: releaser (path: tools/releaser)
  • Database adapters: sqlite3, mysql2, trilogy, pg (each declared in activerecord/Gemfile with conditional installation)
  • Cloud SDKs: aws-sdk-s3, google-cloud-storage, image_processing (in activestorage/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/actioncable on 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 mdl with .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.lock via bundle update or bundle update <gem>.
  • New gem dependencies typically require a release-notes entry and a changelog mention.

Built by Factory AutoWiki from public repository content. It is a generated preview for codebase exploration, not source-maintained documentation.

Dependencies – Ruby on Rails wiki | Factory