Current release: 3.3.12, released 16 July 2026.
What it is
Ruby is a general-purpose, high-level programming language best known for expressive syntax and an object-oriented programming model in which nearly everything is an object. It is widely used for web applications, especially through the Ruby on Rails framework, but also supports scripting, automation, command-line tools, APIs, background processing, and infrastructure tooling. Ruby applications commonly run on the reference Ruby implementation, often called CRuby or MRI, and use RubyGems and Bundler to obtain and manage libraries.
History
Ruby was created in Japan with the goal of making programming enjoyable while combining ideas from object-oriented and scripting languages. It gained an international following as its open-source ecosystem matured, then became closely associated with rapid web application development through Rails. Rails popularized conventions for database-backed applications, dependency management, testing, and deployment practices that influenced web development beyond Ruby. Over time, Ruby and its tooling have focused on better performance, stronger concurrency options, security maintenance, and compatibility with modern deployment environments, while its ecosystem has continued to support many long-lived applications.
Migration notes
Migration planning for Ruby often begins with identifying the actual runtime, framework, and dependency constraints rather than treating Ruby as a single interchangeable platform. Applications may depend on native-extension gems that require system compilers, operating-system libraries, specific CPU support, or compatible database and cryptography packages. Older projects can also be constrained by unmaintained gems, legacy Rails conventions, older test frameworks, or dependencies that rely on deprecated language behavior. Moving to a newer Ruby runtime may therefore require coordinated updates to Bundler configuration, gems, framework components, CI images, container base images, and production hosts. Moving away from Ruby can be more involved than translating syntax: Rails applications often embed routing, ORM behavior, migrations, validation, callbacks, background jobs, mail delivery, asset handling, and authorization patterns across the codebase. Preserve database migration history and externally visible API behavior, inventory asynchronous jobs and scheduled tasks, and account for operational dependencies such as Redis, message queues, file storage, and third-party integrations. Dynamic typing and metaprogramming can make static discovery of interfaces, implicit callbacks, and runtime-generated methods difficult, so test coverage, production traffic analysis, and incremental strangler-style migrations are particularly useful.
Release history
Version support status
| Cycle | Status | Date |
|---|---|---|
| Ruby 4.0 | Supported | No support end date published |
| Ruby 3.4 | Supported | No support end date published |
| Ruby 3.3 | Supported | No support end date published |
| Ruby 3.2 | End of life | EOL 31 March 2026 |
| Ruby 3.1 | End of life | EOL 26 March 2025 |
| Ruby 3.0 | End of life | EOL 23 April 2024 |
| Ruby 2.7 | End of life | EOL 31 March 2023 |
| Ruby 2.6 | End of life | EOL 31 March 2022 |
| Ruby 2.5 | End of life | EOL 31 March 2021 |
| Ruby 2.4 | End of life | EOL 31 March 2020 |
