About Ruby's Gemified Standard Library
Large portions of Ruby's standard library come in the form of RubyGems, which can be updated independently from Ruby.
There are two different kinds of standard gems:
-
Default gems: These gems are part of Ruby and you can always require them directly. You cannot remove them. They are maintained by Ruby core.
-
Bundled gems: The behavior of bundled gems is similar to normal gems, but they get automatically installed when you install Ruby. They can be uninstalled and they are maintained outside of Ruby core.
There are a few libraries that will stay non-gem default libraries, because they are very dependent on the specific Ruby version.
Standard Gems Version Data
Every Ruby version ships a specific set of default gems, default libraries, and bundled gems. The following tables show all standard libraries included in the current Ruby version 3.4.1. The data is also available as JSON:
The first two files contain data about all default and bundled gems and which Ruby version comes with which version of the gem. The third file contains data about all the non-gemified standard libraries. The fourth JSON combines the above ones into a single unified list.
Other important websites in 2022: Support Ukraine, Latest IPCC report, SARS-CoV-2 Variants
Default Gems in Ruby 3.4.1
Default Gem | 3.4.1 | 3.4.0 | Description | Resources |
---|---|---|---|---|
benchmark | 0.4.0 | 0.4.0 | Benchmark utility: Measures and reports the time used to execute code | RubyGems · GitHub · RDoc · CRuby |
bundler | 2.6.2 | 2.6.2 | Bundler is the local package manager for Ruby applications | RubyGems · GitHub · RDoc · CRuby |
cgi c | 0.4.1 | 0.4.1 | Support for CGI (Common Gateway Interface) | RubyGems · GitHub · RDoc · CRuby (1) · CRuby (2) · CRuby (3) · JRuby (1) |
date c | 3.4.1 | 3.4.1 | The Date and DateTime classes | RubyGems · GitHub · RDoc (1) · RDoc (2) · CRuby · JRuby (1) · JRuby (2) · JRuby (3) |
delegate | 0.4.0 | 0.4.0 | Provides three ways to delegate method calls | RubyGems · GitHub · RDoc · CRuby |
did_you_mean | 2.0.0 | 2.0.0 | Patches error messages to suggest correct spelling of methods/classes/variables | RubyGems · GitHub · RDoc · CRuby (1) · CRuby (2) |
digest c | 3.2.0 | 3.2.0 | Provides common hash functions like MD5, SHA1, SHA2, or RIPEMD-160 | RubyGems · GitHub · RDoc · CRuby · JRuby (1) |
english | 0.8.0 | 0.8.0 | Readable aliases for special global variables | RubyGems · GitHub · RDoc · CRuby · JRuby |
erb | 4.0.4 | 4.0.4 | Templating engine for Ruby | RubyGems · GitHub · RDoc · CRuby |
error_highlight | 0.7.0 | 0.7.0 | Improves error messages with additional debug info | RubyGems · GitHub · RDoc · CRuby (1) · CRuby (2) |
etc c | 1.4.5 | 1.4.5 | Access UNIX info from /etc |
RubyGems · GitHub · RDoc · CRuby · JRuby (1) · JRuby (2) |
fcntl c | 1.2.0 | 1.2.0 | Loads values from the OS' fcntl.h to be used for low-level file descriptor manipulation system calls with IO#fcntl and IO.sysopen |
RubyGems · GitHub · RDoc · CRuby · JRuby (1) · JRuby (2) |
fiddle c | 1.1.6 | 1.1.6 | Support for FFI (Foreign Function Interface) | RubyGems · GitHub · RDoc · CRuby · JRuby (1) · JRuby (2) |
fileutils | 1.7.3 | 1.7.3 | Utilities for working with the file system, such as copying, moving, or deleting files | RubyGems · GitHub · RDoc · CRuby · JRuby (1) |
find | 0.2.0 | 0.2.0 | Finds all files in a given directory and its sub-directories | RubyGems · GitHub · RDoc · CRuby |
forwardable | 1.3.3 | 1.3.3 | Provides a way to delegate method calls. Also see this overview of delegation in Ruby, which contains an example | RubyGems · GitHub · RDoc · CRuby (1) · CRuby (2) · CRuby (3) |
io-console c | 0.8.0 | 0.8.0 | Patches IO for simple and portable access to the console |
RubyGems · GitHub · RDoc · CRuby |
io-nonblock c | 0.3.1 | 0.3.1 | Allows to work with IO streams in a non-blocking way |
RubyGems · GitHub · RDoc · CRuby · JRuby (1) · JRuby (2) |
io-wait c | 0.3.1 | 0.3.1 | Adds methods to wait until an IO stream becomes readable or writable |
RubyGems · GitHub · RDoc · CRuby · JRuby (1) · JRuby (2) |
ipaddr | 1.2.7 | 1.2.7 | IP address manipulation (IPv4 and IPv6) | RubyGems · GitHub · RDoc · CRuby |
irb | 1.14.3 | 1.14.3 | Interactive Ruby Console (REPL) | RubyGems · GitHub · RDoc · CRuby (1) · CRuby (2) |
json c | 2.9.1 | 2.9.1 | Support for JSON (JavaScript Object Notation) | RubyGems · GitHub · RDoc · CRuby |
logger | 1.6.4 | 1.6.4 | Logging utility | RubyGems · GitHub · RDoc · CRuby |
net-http | 0.6.0 | 0.6.0 | Support for HTTP (Hypertext Transfer Protocol) | RubyGems · GitHub · RDoc · CRuby (1) · CRuby (2) · CRuby (3) · JRuby (1) · JRuby (2) · JRuby (3) |
net-protocol | 0.2.2 | 0.2.2 | Internal class for the other net-* libraries | RubyGems · GitHub · RDoc · CRuby · JRuby |
open3 | 0.2.1 | 0.2.1 | Simple spawning of child processes | RubyGems · GitHub · RDoc · CRuby · JRuby |
openssl c | 3.3.0 | 3.3.0 | Wraps OpenSSL for cryptographic functionality | RubyGems · GitHub · RDoc · CRuby |
open-uri | 0.5.0 | 0.5.0 | Monkeypatches Kernel#open to support remote endpoints via net/http and net/ftp |
RubyGems · GitHub · RDoc · CRuby |
optparse | 0.6.0 | 0.6.0 | Command-line option parser | RubyGems · GitHub · RDoc · CRuby (1) · CRuby (2) · CRuby (3) |
ostruct | 0.6.1 | 0.6.1 | Wrapper around Hash which lets you read and set attributes with a method-based API | RubyGems · GitHub · RDoc · CRuby |
pathname c | 0.4.0 | 0.4.0 | Wraps File , FileTest , Dir , and FileUtils to ease working with file system paths |
RubyGems · GitHub · RDoc · CRuby · JRuby (1) · JRuby (2) |
prism c | 1.2.0 | 1.2.0 | Prism is a portable, error tolerant, and maintainable recursive descent parser for the Ruby language | RubyGems · GitHub · RDoc · CRuby (1) · CRuby (2) · CRuby (3) · CRuby (4) · CRuby (5) |
pp | 0.6.2 | 0.6.2 | The pp print debugging helper via require 'pp' . It will format the result object in more readable way. |
RubyGems · GitHub · RDoc · CRuby · JRuby |
prettyprint | 0.2.0 | 0.2.0 | Better object formatting and inspection. Also see the pp gem. | RubyGems · GitHub · RDoc · CRuby |
pstore | 0.1.4 | 0.1.4 | Transactional file storage for Ruby objects | RubyGems · GitHub · RDoc · CRuby |
psych c | 5.2.2 | 5.2.2 | Support for YAML (YAML Ain't Markup Language) | RubyGems · GitHub · RDoc · CRuby |
rdoc | 6.10.0 | 6.10.0 | Ruby documentation generator | RubyGems · GitHub · RDoc · CRuby (1) · CRuby (2) |
readline | 0.0.4 | 0.0.4 | If available, readline-ext will be loaded, or (Ruby-only) default gem reline will be used. | RubyGems · GitHub · RDoc · CRuby |
reline | 0.6.0 | 0.6.0 | Ruby-only implementation of GNU Readline / NetBSD Editline | RubyGems · GitHub · RDoc · CRuby |
resolv | 0.6.0 | 0.6.0 | Thread-aware DNS resolver | RubyGems · GitHub · RDoc · CRuby (1) · JRuby |
ruby2_keywords | 0.0.5 | 0.0.5 | A shim gemspec to indicate that the Ruby implementation includes the ruby2_keywords method |
RubyGems · GitHub · RDoc |
rubygems | 3.6.2 | 3.6.2 | RubyGems allows you to download, install, and use Ruby software packages on your system | RubyGems · GitHub · RDoc · CRuby (1) · CRuby (2) · JRuby (1) |
securerandom | 0.4.1 | 0.4.1 | Provides cryptographical randomness from openssl or the OS | RubyGems · GitHub · RDoc · CRuby · JRuby (1) · JRuby (2) |
set | 1.1.1 | 1.1.1 | Data structure for unordered collections without duplicates. Implemented on top of Hash. | RubyGems · GitHub · RDoc · CRuby · JRuby (1) · JRuby (2) |
shellwords | 0.2.2 | 0.2.2 | Escape and manipulate commands to be run in the shell | RubyGems · GitHub · RDoc · CRuby |
singleton | 0.3.0 | 0.3.0 | Mixin for Ruby classes that should only have one instance | RubyGems · GitHub · RDoc · CRuby |
stringio c | 3.1.2 | 3.1.2 | Makes strings behave like IO objects | RubyGems · GitHub · RDoc · CRuby · JRuby (1) · JRuby (2) |
strscan c | 3.1.2 | 3.1.2 | Lexical string scanning | RubyGems · GitHub · RDoc · CRuby · JRuby (1) · JRuby (2) |
syntax_suggest | 2.0.2 | 2.0.2 | Assists with code recommendation to resolve Ruby syntax errors | RubyGems · GitHub · RDoc · CRuby (1) · CRuby (2) |
tempfile | 0.3.1 | 0.3.1 | Simplifies OS independent creation of temporary files | RubyGems · GitHub · RDoc · CRuby · JRuby (1) · JRuby (2) |
time | 0.4.1 | 0.4.1 | Adds more methods to Time |
RubyGems · GitHub · RDoc · CRuby |
timeout | 0.4.3 | 0.4.3 | Auto-terminates code blocks after the time limit is reached | RubyGems · GitHub · RDoc · CRuby · JRuby (1) · JRuby (2) |
tmpdir | 0.3.1 | 0.3.1 | Adds a Dir.mktmpdir method for creating temporary directories OS independently |
RubyGems · GitHub · RDoc · CRuby · JRuby |
tsort | 0.2.0 | 0.2.0 | Topological sorting using Tarjan’s algorithm, which finds strongly connected components in graphs | RubyGems · GitHub · RDoc · CRuby |
un | 0.3.0 | 0.3.0 | Utilities to replace common UNIX commands | RubyGems · GitHub · RDoc · CRuby |
uri | 1.0.2 | 1.0.2 | URI/URL manipulation | RubyGems · GitHub · RDoc · CRuby (1) · CRuby (2) · JRuby (1) · JRuby (2) |
weakref | 0.1.3 | 0.1.3 | Explicitly allow objects to be garbage collected | RubyGems · GitHub · RDoc · CRuby · JRuby |
win32ole c | 1.9.1 | 1.9.1 | Windows OLE automation interface | RubyGems · GitHub · RDoc · CRuby · JRuby |
yaml | 0.4.0 | 0.4.0 | require 'yaml' will load the psych default gem, yaml/dbm is a wrapper around DBM using YAML serialization, and yaml/store lets you use pstore with YAML |
RubyGems · GitHub · RDoc (1) · RDoc (2) · RDoc (3) · CRuby (1) · CRuby (2) · CRuby (3) · JRuby (1) · JRuby (2) |
zlib c | 3.2.1 | 3.2.1 | Interface to the zlib compression library | RubyGems · GitHub · RDoc · CRuby · JRuby (1) · JRuby (2) |
Bundled Gems in Ruby 3.4.1
Bundled Gem | 3.4.1 | 3.4.0 | Description | Resources |
---|---|---|---|---|
abbrev | 0.1.2 | 0.1.2 | Finds the shortest unique abbreviation amongst many strings | RubyGems · GitHub · RDoc |
base64 | 0.2.0 | 0.2.0 | Encodes and decodes strings to a Base64 representation. Implemented as a small wrapper around String#unpack | RubyGems · GitHub · RDoc |
bigdecimal c | 3.1.8 | 3.1.8 | Support for arbitrary-precision floating point decimal arithmetic | RubyGems · GitHub · RDoc |
csv | 3.3.2 | 3.3.2 | Support for CSV (Comma-separated Values) | RubyGems · GitHub · RDoc |
debug c | 1.10.0 | 1.10.0 | Command-line debugger | RubyGems · GitHub · RDoc |
drb | 2.2.1 | 2.2.1 | Distributed object system for Ruby | RubyGems · GitHub · RDoc |
getoptlong | 0.2.1 | 0.2.1 | GNU getopt_long() style command-line option parsing | RubyGems · GitHub · RDoc |
matrix | 0.4.2 | 0.4.2 | Support for matrices | RubyGems · GitHub · RDoc |
minitest | 5.25.4 | 5.25.4 | Test/spec framework, comes with mocking and benchmark capabilities | RubyGems · GitHub · RDoc |
mutex_m | 0.3.0 | 0.3.0 | A mixin that makes any object behave like a mutex | RubyGems · GitHub · RDoc |
net-ftp | 0.3.8 | 0.3.8 | Support for FTP (File Transfer Protocol) | RubyGems · GitHub · RDoc |
net-imap | 0.5.4 | 0.5.4 | Support for IMAP (Internet Message Access Protocol) | RubyGems · GitHub · RDoc |
net-pop | 0.1.2 | 0.1.2 | Support for POP3 (Post Office Protocol) | RubyGems · GitHub · RDoc |
net-smtp | 0.5.0 | 0.5.0 | Support for SMTP (Simple Mail Transfer Protocol) | RubyGems · GitHub · RDoc |
nkf c | 0.2.0 | 0.2.0 | Kanji encoding converter. Can also be used via the Kconv.kconv method. | RubyGems · GitHub · RDoc |
observer | 0.1.2 | 0.1.2 | Implementation of the observer pattern, a way to let interested other objects know o an objetc's updates | RubyGems · GitHub · RDoc |
prime | 0.1.3 | 0.1.3 | Access to prime numbers and prime factorization | RubyGems · GitHub · RDoc |
power_assert | 2.0.5 | 2.0.5 | Debug tool that displays intermediate results of a method chain | RubyGems · GitHub · RDoc |
racc c | 1.8.1 | 1.8.1 | Bindings for Racc, a YACC-like LALR(1) parser generator | RubyGems · GitHub · RDoc |
rake | 13.2.1 | 13.2.1 | A Ruby task runner, inspired by make | RubyGems · GitHub · RDoc |
rbs | 3.8.0 | 3.8.0 | Released with Ruby 3.0, RBS is a way to declare types in Ruby. The gem allows parsing and processing type definitions written in RBS. | RubyGems · GitHub · RDoc |
repl_type_completor | 0.1.9 | 0.1.9 | Creates RBS-based code-completions to enhance the IRB (or any other Ruby read-eval-print-loop) usage experience | RubyGems · GitHub · RDoc |
resolv-replace | 0.1.1 | 0.1.1 | Will replace Socket's DNS with resolv | RubyGems · GitHub · RDoc |
rexml | 3.4.0 | 3.4.0 | Support for XML (Extensible Markup Language) | RubyGems · GitHub · RDoc |
rinda | 0.2.0 | 0.2.0 | Support fot the Linda distributed computing paradigm in drb | RubyGems · GitHub · RDoc |
rss | 0.3.1 | 0.3.1 | Support for RSS (Rich Site Summary) and Atom | RubyGems · GitHub · RDoc |
test-unit | 3.6.7 | 3.6.7 | A xUnit family unit testing framework (compatibility layer for minitest) | RubyGems · GitHub · RDoc |
syslog c | 0.2.0 | 0.2.0 | Interface to the low-level syslog logger | RubyGems · GitHub · RDoc |
typeprof | 0.30.1 | 0.30.1 | Released with Ruby 3.0, typeprof allows you to automatically generate RBS type annotations | RubyGems · GitHub · RDoc |
Default Libraries
Gem Tables by Version
- Gem list for Ruby: 3.4.1 · 3.4.0
- Gem list for Ruby: 3.3.7 · 3.3.6 · 3.3.5 · 3.3.4 · 3.3.3 · 3.3.2 · 3.3.1 · 3.3.0
- Gem list for Ruby: 3.2.6 · 3.2.5 · 3.2.4 · 3.2.3 · 3.2.2 · 3.2.1 · 3.2.0
- Gem list for Ruby: 3.1.6 · 3.1.5 · 3.1.4 · 3.1.3 · 3.1.2 · 3.1.1 · 3.1.0
- Gem list for Ruby: 3.0.7 · 3.0.6 · 3.0.5 · 3.0.4 · 3.0.3 · 3.0.2 · 3.0.1 · 3.0.0
- Gem list for Ruby: 2.7.8 · 2.7.7 · 2.7.6 · 2.7.5 · 2.7.4 · 2.7.3 · 2.7.2 · 2.7.1 · 2.7.0
- Gem list for Ruby: 2.6.10 · 2.6.9 · 2.6.8 · 2.6.7 · 2.6.6 · 2.6.5 · 2.6.4 · 2.6.3 · 2.6.2 · 2.6.1 · 2.6.0
- Gem list for Ruby: 2.5.9 · 2.5.8 · 2.5.7 · 2.5.6 · 2.5.5 · 2.5.4 · 2.5.3 · 2.5.2 · 2.5.1 · 2.5.0
- Gem list for Ruby: 2.4.10 · 2.4.9 · 2.4.8 · 2.4.7 · 2.4.6 · 2.4.5 · 2.4.4 · 2.4.3 · 2.4.2 · 2.4.1 · 2.4.0
- Gem list for Ruby: 2.3.8 · 2.3.7 · 2.3.6 · 2.3.5 · 2.3.4 · 2.3.3 · 2.3.2 · 2.3.1 · 2.3.0
- Gem list for Ruby: 2.2.10 · 2.2.9 · 2.2.8 · 2.2.7 · 2.2.6 · 2.2.5 · 2.2.4 · 2.2.3 · 2.2.2 · 2.2.1 · 2.2.0
- Compare versions: Main Rubies · Supported Rubies · All Rubies · 3.4 · 3.3 · 3.2 · 3.1 · 3.0 · 2.7 · 2.6 · 2.5 · 2.4 · 2.3 · 2.2
- Gemified in: 3.4 · 3.3 · 3.2 · 3.1 · 3.0 · 2.7 · 2.6 · 2.5 · 2.4 · 2.3 · 2.2
- List of Non-Gem Default Libraries
- List of Unmaintained Default Gems
- List of Removed Standard Gems
About stdgems.org
This page and the JSON data files it is based on are maintained on GitHub. Originally based on episode 20 of Idiosyncratic Ruby and put together by Jan Lelis.
Page Version: 5.14.0 (Change Log)