Ruby Standard Gems

About the Gemified Standard Library

Ruby's standard library is in the process of being gemified. More and more libraries will be turned into RubyGems, which can be updated independently from Ruby.

There are two different kinds of standard gems:

Gemification Progress

As of Ruby 3.0, 89% (101 of 113) standard libraries have been gemified.

Standard gems changes in Ruby: 3.0 - 2.7 - 2.6 - 2.5 - 2.4 - 2.3 - 2.2

Checkout Hiroshi Shibata's talk at RubyConf 2017 for more info. Also see Ruby issue #5481 for the current state of the gemification project.

Standard Gems Version Data

Every Ruby version ships a specific set of default and bundled gems. The tables below list included gems of the current Ruby version 3.0.1. There is also version comparison that shows which Ruby version comes with which gem versions. The raw data is available as default_gems.json and bundled_gems.json.

Default Gems (Ruby 3.0.1)

Gem Version Description Resources
abbrev 0.1.0 Finds the shortest unique abbreviation amongst many strings RubyGems, GitHub, CRuby, RDoc
base64 0.1.0 Encodes and decodes strings to a Base64 representation. Implemented as a small wrapper around String#unpack RubyGems, GitHub, CRuby, RDoc
benchmark 0.1.1 Benchmark utility: Measures and reports the time used to execute code RubyGems, GitHub, CRuby, RDoc
bigdecimal c 3.0.0 Support for arbitrary-precision floating point decimal arithmetic RubyGems, GitHub, CRuby, RDoc
bundler 2.2.15 Bundler is the local package manager for Ruby applications RubyGems, GitHub, CRuby, RDoc
cgi c 0.2.0 Support for CGI (Common Gateway Interface) RubyGems, GitHub, CRuby (1), CRuby (2), CRuby (3), RDoc
csv 3.1.9 Support for CSV (Comma-separated Values) RubyGems, GitHub, CRuby (1), CRuby (2), RDoc
date c 3.1.0 The Date and DateTime classes RubyGems, GitHub, CRuby, RDoc (1), RDoc (2)
dbm c 1.1.0 Support for DBM databases RubyGems, GitHub, CRuby, RDoc
debug 0.1.0 Command-line debugger CRuby, RDoc
delegate 0.2.0 Provides three ways to delegate method calls RubyGems, GitHub, CRuby, RDoc
did_you_mean 1.5.0 Patches error messages to suggest correct spelling of methods/classes/variables RubyGems, GitHub, CRuby (1), CRuby (2)
digest c 3.0.0 Provides common hash functions like MD5, SHA1, SHA2, or RIPEMD-160 RubyGems, GitHub, CRuby, RDoc
drb 2.0.4 Distributed object system for Ruby RubyGems, CRuby (1), CRuby (2), RDoc
english 0.7.1 Readable aliases for special global variables RubyGems, GitHub, CRuby, RDoc
erb 2.2.0 Templating engine for Ruby RubyGems, GitHub, CRuby, RDoc
etc c 1.2.0 Access UNIX info from /etc RubyGems, GitHub, CRuby, RDoc
fcntl c 1.0.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, CRuby, RDoc
fiddle c 1.0.6 Support for FFI (Foreign Function Interface) RubyGems, GitHub, CRuby, RDoc
fileutils 1.5.0 Utilities for working with the file system, such as copying, moving, or deleting files RubyGems, GitHub, CRuby, RDoc
find 0.1.0 Finds all files in a given directory and its sub-directories RubyGems, GitHub, CRuby, RDoc
forwardable 1.3.2 Provides a way to delegate method calls. Also see this overview of delegation in Ruby, which contains an example RubyGems, GitHub, CRuby (1), CRuby (2), CRuby (3), RDoc
gdbm c 2.1.0 Support for GDBM databases RubyGems, GitHub, CRuby, RDoc
getoptlong 0.1.1 GNU getopt_long() style command-line option parsing RubyGems, GitHub, CRuby, RDoc
io-console c 0.5.7 Patches IO for simple and portable access to the console RubyGems, GitHub, CRuby, RDoc
io-nonblock c 0.1.0 Allows to work with IO streams in a non-blocking way RubyGems, GitHub, CRuby, RDoc
io-wait c 0.1.0 Adds methods to wait until an IO stream becomes readable or writable RubyGems, GitHub, CRuby, RDoc
ipaddr 1.2.2 IP address manipulation (IPv4 and IPv6) RubyGems, GitHub, CRuby, RDoc
irb 1.3.5 Interactive Ruby Console (REPL) RubyGems, GitHub, CRuby (1), CRuby (2), RDoc
json c 2.5.1 Support for JSON (JavaScript Object Notation) RubyGems, GitHub, CRuby, RDoc
logger 1.4.3 Logging utility RubyGems, GitHub, CRuby, RDoc
matrix 0.3.1 Support for matrices RubyGems, GitHub, CRuby (1), CRuby (2), RDoc
mutex_m 0.1.1 A mixin that makes any object behave like a mutex RubyGems, GitHub, CRuby, RDoc
net-ftp 0.1.1 Support for FTP (File Transfer Protocol) RubyGems, GitHub, CRuby, RDoc
net-http 0.1.1 Support for HTTP (Hypertext Transfer Protocol) RubyGems, GitHub, CRuby (1), CRuby (2), CRuby (3), RDoc
net-imap 0.1.1 Support for IMAP (Internet Message Access Protocol) RubyGems, GitHub, CRuby, RDoc
net-pop 0.1.1 Support for POP3 (Post Office Protocol) RubyGems, GitHub, CRuby, RDoc
net-protocol 0.1.0 Internal class for the other net-* libraries, going to be refactored/removed RubyGems, GitHub, CRuby
net-smtp 0.2.1 Support for SMTP (Simple Mail Transfer Protocol) RubyGems, GitHub, CRuby, RDoc
nkf c 0.1.0 Kanji encoding converter RubyGems, GitHub, CRuby, RDoc
observer 0.1.1 Implementation of the observer pattern, a way to let interested other objects know o an objetc's updates RubyGems, GitHub, CRuby, RDoc
open3 0.1.1 Simple spawning of child processes RubyGems, GitHub, CRuby, RDoc
openssl c 2.2.0 Wraps OpenSSL for cryptographic functionality RubyGems, GitHub, CRuby, RDoc
open-uri 0.1.0 Monkeypatches Kernel#open to support remote endpoints via net/http and net/ftp RubyGems, GitHub, CRuby, RDoc
optparse 1.0.0 Command-line option parser RubyGems, GitHub, CRuby (1), CRuby (2), CRuby (3), RDoc
ostruct 0.3.1 Wrapper around Hash which lets you read and set attributes with a method-based API RubyGems, GitHub, CRuby, RDoc
pathname c 0.1.0 Wraps File, FileTest, Dir, and FileUtils to ease working with file system paths RubyGems, CRuby, RDoc
pp 0.1.0 The pp print debugging helper via require 'pp'. It will format the result object in more readable way. RubyGems, CRuby, RDoc
prettyprint 0.1.0 Better object formatting and inspection. Also see the /pp/. RubyGems, CRuby, RDoc
prime 0.1.2 Access to prime numbers and prime factorization RubyGems, GitHub, CRuby, RDoc
pstore 0.1.1 Transactional file storage for Ruby objects RubyGems, GitHub, CRuby, RDoc
psych c 3.3.0 Support for YAML (YAML Ain't Markup Language) RubyGems, GitHub, CRuby, RDoc
racc c 1.5.1 Bindings for Racc, a YACC-like LALR(1) parser generator RubyGems, GitHub, CRuby (1), CRuby (2), RDoc
rdoc 6.3.0 Ruby documentation generator RubyGems, GitHub, CRuby (1), CRuby (2), RDoc
readline 0.0.2 If available, readline-ext will be loaded, or (Ruby-only) reline will be used. RubyGems, CRuby, RDoc
readline-ext c 0.1.1 Interface to GNU Readline and NetBSD Editline RubyGems, CRuby, RDoc
reline 0.2.5 Ruby-only implementation of GNU Readline / NetBSD Editline RubyGems, GitHub, CRuby
resolv 0.2.0 Thread-aware DNS resolver RubyGems, CRuby (1), RDoc
resolv-replace 0.1.0 Will replace Socket's DNS with resolv RubyGems, CRuby (1), RDoc
rinda 0.1.0 Support fot the Linda distributed computing paradigm in drb RubyGems, GitHub, CRuby, RDoc
rubygems 3.2.15 RubyGems allows you to download, install, and use Ruby software packages on your system RubyGems, GitHub, CRuby (1), CRuby (2), RDoc
securerandom 0.1.0 Provides crpytographical randomness from openssl or the OS RubyGems, GitHub, CRuby, RDoc
set 1.0.1 Data structure for unordered collections without duplicates. Implemented on top of Hash. Also comes with SortedSet for ordered collections. RubyGems, GitHub, CRuby, RDoc (1), RDoc (2)
shellwords 0.1.0 Escape and manipulate commads to be run in the shell RubyGems, GitHub, CRuby, RDoc
singleton 0.1.1 Mixin for Ruby classes that should only have one instance RubyGems, GitHub, CRuby, RDoc
stringio c 3.0.0 Makes strings behave like IO objects RubyGems, GitHub, CRuby, RDoc
strscan c 3.0.0 Lexical string scanning RubyGems, GitHub, CRuby, RDoc
syslog c 0.1.0 Interface to the low-level syslog logger RubyGems, GitHub, CRuby, RDoc
tempfile 0.1.1 Simplifies OS independent creation of temporary files RubyGems, GitHub, CRuby, RDoc
time 0.1.0 Adds more methods to Time RubyGems, GitHub, CRuby, RDoc
timeout 0.1.1 Auto-terminates code blocks after the time limit is reached RubyGems, GitHub, CRuby, RDoc
tmpdir 0.1.2 Adds a Dir.mktmpdir method for creating temporary directories OS independently RubyGems, GitHub, CRuby, RDoc
un 0.1.0 Utilities to replace common UNIX commands RubyGems, CRuby, RDoc
tracer 0.1.1 Outputs the code execution trace via Kernel#set_trace_func RubyGems, GitHub, CRuby (1), CRuby (2), RDoc
tsort 0.1.0 Topological sorting using Tarjan’s algorithm, which finds strongly connected components in graphs RubyGems, GitHub, CRuby, RDoc
uri 0.10.0 URI/URL manipulation RubyGems, GitHub, CRuby (1), CRuby (2), RDoc
weakref 0.1.1 Explicitely allow objects to be garbage collected RubyGems, GitHub, CRuby, RDoc
win32ole c 1.8.8 Windows OLE automation interface RubyGems, CRuby, RDoc
yaml 0.1.1 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, CRuby (1), CRuby (2), CRuby (3), RDoc (1), RDoc (2), RDoc (3)
zlib c 1.1.0 Interface to the zlib compression library RubyGems, GitHub, CRuby, RDoc

Bundled Gems (Ruby 3.0.1)

Gem Version Description Resources
minitest 5.14.2 Test/spec framework, comes with mocking and benchmark capabilities RubyGems, GitHub
power_assert 1.2.0 Debug tool that displays intermediate results of a method chain RubyGems, GitHub
rake 13.0.3 A Ruby task runner, inspired by make RubyGems, GitHub
rbs 1.0.4 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
rexml 3.2.5 Support for XML (Extensible Markup Language) RubyGems, GitHub
rss 0.2.9 Support for RSS (Rich Site Summary) and Atom RubyGems, GitHub
test-unit 3.3.8 A xUnit family unit testing framework (compatibility layer for minitest) RubyGems, GitHub
typeprof 0.12.0 Released with Ruby 3.0, typeprof allows you to automatically generate RBS type annotations RubyGems, GitHub

Gems per Ruby Version

Unmaintained Default Gems

See the unmaintained page for a list of default gems lacking a maintainer…

Removed Standard Gems

See the removed page for a list of default gems which are not part of Ruby, anymore.

Non-Gemified Standard Libraries

A list of standard libraries which have not yet turned into gems can be found at libraries. The respective JSON file is at libraries.json.


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: 2.5.0

Data Protection

Fork me on GitHub