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.3.5. 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.3.5
Default Gem | 3.3.5 | 3.3.4 | Description | Resources |
---|---|---|---|---|
abbrev | 0.1.2 | 0.1.2 | Finds the shortest unique abbreviation amongst many strings | RubyGems · GitHub · RDoc · CRuby |
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 · CRuby |
benchmark | 0.3.0 | 0.3.0 | Benchmark utility: Measures and reports the time used to execute code | RubyGems · GitHub · RDoc · CRuby |
bigdecimal c | 3.1.5 | 3.1.5 | Support for arbitrary-precision floating point decimal arithmetic | RubyGems · GitHub · RDoc · CRuby · JRuby (1) · JRuby (2) · JRuby (3) |
bundler | 2.5.16 | 2.5.11 | 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) |
csv | 3.2.8 | 3.2.8 | Support for CSV (Comma-separated Values) | RubyGems · GitHub · RDoc · CRuby (1) · CRuby (2) |
date c | 3.3.4 | 3.3.4 | The Date and DateTime classes | RubyGems · GitHub · RDoc (1) · RDoc (2) · CRuby · JRuby (1) · JRuby (2) · JRuby (3) |
delegate | 0.3.1 | 0.3.1 | Provides three ways to delegate method calls | RubyGems · GitHub · RDoc · CRuby |
did_you_mean | 1.6.3 | 1.6.3 | Patches error messages to suggest correct spelling of methods/classes/variables | RubyGems · GitHub · RDoc · CRuby (1) · CRuby (2) |
digest c | 3.1.1 | 3.1.1 | Provides common hash functions like MD5, SHA1, SHA2, or RIPEMD-160 | RubyGems · GitHub · RDoc · CRuby · JRuby (1) |
drb | 2.2.0 | 2.2.0 | Distributed object system for Ruby | RubyGems · GitHub · RDoc · CRuby (1) · CRuby (2) |
english | 0.8.0 | 0.8.0 | Readable aliases for special global variables | RubyGems · GitHub · RDoc · CRuby · JRuby |
erb | 4.0.3 | 4.0.3 | Templating engine for Ruby | RubyGems · GitHub · RDoc · CRuby |
error_highlight | 0.6.0 | 0.6.0 | Improves error messages with additional debug info | RubyGems · GitHub · RDoc · CRuby (1) · CRuby (2) |
etc c | 1.4.3 | 1.4.3 | Access UNIX info from /etc |
RubyGems · GitHub · RDoc · CRuby · JRuby (1) · JRuby (2) |
fcntl c | 1.1.0 | 1.1.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.2 | 1.1.2 | Support for FFI (Foreign Function Interface) | RubyGems · GitHub · RDoc · CRuby · JRuby (1) · JRuby (2) |
fileutils | 1.7.2 | 1.7.2 | 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) |
getoptlong | 0.2.1 | 0.2.1 | GNU getopt_long() style command-line option parsing | RubyGems · GitHub · RDoc · CRuby |
io-console c | 0.7.1 | 0.7.1 | Patches IO for simple and portable access to the console |
RubyGems · GitHub · RDoc · CRuby |
io-nonblock c | 0.3.0 | 0.3.0 | 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.6 | 1.2.6 | IP address manipulation (IPv4 and IPv6) | RubyGems · GitHub · RDoc · CRuby |
irb | 1.13.1 | 1.13.1 | Interactive Ruby Console (REPL) | RubyGems · GitHub · RDoc · CRuby (1) · CRuby (2) |
json c | 2.7.1 | 2.7.1 | Support for JSON (JavaScript Object Notation) | RubyGems · GitHub · RDoc · CRuby |
logger | 1.6.0 | 1.6.0 | Logging utility | RubyGems · GitHub · RDoc · CRuby |
mutex_m | 0.2.0 | 0.2.0 | A mixin that makes any object behave like a mutex | RubyGems · GitHub · RDoc · CRuby |
net-http | 0.4.1 | 0.4.1 | 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 |
nkf c | 0.1.3 | 0.1.3 | Kanji encoding converter. Can also be used via the Kconv.kconv method. | RubyGems · GitHub · RDoc · CRuby · JRuby (1) · JRuby (2) |
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 · CRuby |
open3 | 0.2.1 | 0.2.1 | Simple spawning of child processes | RubyGems · GitHub · RDoc · CRuby · JRuby |
openssl c | 3.2.0 | 3.2.0 | Wraps OpenSSL for cryptographic functionality | RubyGems · GitHub · RDoc · CRuby |
open-uri | 0.4.1 | 0.4.1 | Monkeypatches Kernel#open to support remote endpoints via net/http and net/ftp |
RubyGems · GitHub · RDoc · CRuby |
optparse | 0.4.0 | 0.4.0 | Command-line option parser | RubyGems · GitHub · RDoc · CRuby (1) · CRuby (2) · CRuby (3) |
ostruct | 0.6.0 | 0.6.0 | Wrapper around Hash which lets you read and set attributes with a method-based API | RubyGems · GitHub · RDoc · CRuby |
pathname c | 0.3.0 | 0.3.0 | Wraps File , FileTest , Dir , and FileUtils to ease working with file system paths |
RubyGems · GitHub · RDoc · CRuby · JRuby (1) · JRuby (2) |
prism c | 0.19.0 | 0.19.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.5.0 | 0.5.0 | 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.3 | 0.1.3 | Transactional file storage for Ruby objects | RubyGems · GitHub · RDoc · CRuby |
psych c | 5.1.2 | 5.1.2 | Support for YAML (YAML Ain't Markup Language) | RubyGems · GitHub · RDoc · CRuby |
rdoc | 6.6.3.1 | 6.6.3.1 | 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.5.7 | 0.5.7 | Ruby-only implementation of GNU Readline / NetBSD Editline | RubyGems · GitHub · RDoc · CRuby |
resolv | 0.3.0 | 0.3.0 | Thread-aware DNS resolver | RubyGems · GitHub · RDoc · CRuby (1) · JRuby |
resolv-replace | 0.1.1 | 0.1.1 | Will replace Socket's DNS with resolv | RubyGems · GitHub · RDoc · CRuby (1) |
rinda | 0.2.0 | 0.2.0 | Support fot the Linda distributed computing paradigm in drb | RubyGems · GitHub · RDoc · CRuby |
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.5.16 | 3.5.11 | 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.3.1 | 0.3.1 | Provides cryptographical randomness from openssl or the OS | RubyGems · GitHub · RDoc · CRuby · JRuby (1) · JRuby (2) |
set | 1.1.0 | 1.1.0 | Data structure for unordered collections without duplicates. Implemented on top of Hash. | RubyGems · GitHub · RDoc · CRuby · JRuby (1) · JRuby (2) |
shellwords | 0.2.0 | 0.2.0 | Escape and manipulate commands to be run in the shell | RubyGems · GitHub · RDoc · CRuby |
singleton | 0.2.0 | 0.2.0 | Mixin for Ruby classes that should only have one instance | RubyGems · GitHub · RDoc · CRuby |
stringio c | 3.1.1 | 3.1.1 | Makes strings behave like IO objects | RubyGems · GitHub · RDoc · CRuby · JRuby (1) · JRuby (2) |
strscan c | 3.0.9 | 3.0.9 | Lexical string scanning | RubyGems · GitHub · RDoc · CRuby · JRuby (1) · JRuby (2) |
syslog c | 0.1.2 | 0.1.2 | Interface to the low-level syslog logger | RubyGems · GitHub · RDoc · CRuby · JRuby (1) · JRuby (2) · JRuby (3) |
syntax_suggest | 2.0.0 | 2.0.0 | Assists with code recommendation to resolve Ruby syntax errors | RubyGems · GitHub · RDoc · CRuby (1) · CRuby (2) |
tempfile | 0.2.1 | 0.2.1 | Simplifies OS independent creation of temporary files | RubyGems · GitHub · RDoc · CRuby · JRuby (1) · JRuby (2) |
time | 0.3.0 | 0.3.0 | Adds more methods to Time |
RubyGems · GitHub · RDoc · CRuby |
timeout | 0.4.1 | 0.4.1 | Auto-terminates code blocks after the time limit is reached | RubyGems · GitHub · RDoc · CRuby · JRuby (1) · JRuby (2) |
tmpdir | 0.2.0 | 0.2.0 | 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 | 0.13.1 | 0.13.0 | 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.8.10 | 1.8.10 | Windows OLE automation interface | RubyGems · GitHub · RDoc · CRuby · JRuby |
yaml | 0.3.0 | 0.3.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.1.1 | 3.1.1 | Interface to the zlib compression library | RubyGems · GitHub · RDoc · CRuby · JRuby (1) · JRuby (2) |
Bundled Gems in Ruby 3.3.5
Bundled Gem | 3.3.5 | 3.3.4 | Description | Resources |
---|---|---|---|---|
debug c | 1.9.1 | 1.9.1 | Command-line debugger | RubyGems · GitHub · RDoc |
matrix | 0.4.2 | 0.4.2 | Support for matrices | RubyGems · GitHub · RDoc |
minitest | 5.20.0 | 5.20.0 | Test/spec framework, comes with mocking and benchmark capabilities | RubyGems · GitHub · RDoc |
net-ftp | 0.3.4 | 0.3.4 | Support for FTP (File Transfer Protocol) | RubyGems · GitHub · RDoc |
net-imap | 0.4.9.1 | 0.4.9.1 | 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.4.0.1 | 0.4.0.1 | Support for SMTP (Simple Mail Transfer Protocol) | RubyGems · GitHub · RDoc |
prime | 0.1.2 | 0.1.2 | Access to prime numbers and prime factorization | RubyGems · GitHub · RDoc |
power_assert | 2.0.3 | 2.0.3 | Debug tool that displays intermediate results of a method chain | RubyGems · GitHub · RDoc |
racc c | 1.7.3 | 1.7.3 | Bindings for Racc, a YACC-like LALR(1) parser generator | RubyGems · GitHub · RDoc |
rake | 13.1.0 | 13.1.0 | A Ruby task runner, inspired by make | RubyGems · GitHub · RDoc |
rbs | 3.4.0 | 3.4.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 |
rexml | 3.3.6 | 3.2.8 | Support for XML (Extensible Markup Language) | RubyGems · GitHub · RDoc |
rss | 0.3.1 | 0.3.0 | Support for RSS (Rich Site Summary) and Atom | RubyGems · GitHub · RDoc |
test-unit | 3.6.1 | 3.6.1 | A xUnit family unit testing framework (compatibility layer for minitest) | RubyGems · GitHub · RDoc |
typeprof | 0.21.9 | 0.21.9 | 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.3.5 · 3.3.4 · 3.3.3 · 3.3.2 · 3.3.1 · 3.3.0
- Gem list for Ruby: 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.2 · 3.1 · 3.0 · 2.7 · 2.6 · 2.5 · 2.4 · 2.3 · 2.2
- Gemified in: 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.10.0 (Change Log)