# Ruby Standard Library¶ ↑

The Ruby Standard Library is a vast collection of classes and modules that you can require in your code for additional features.

Below is an overview of libraries and extensions followed by a brief description.

## Libraries¶ ↑

`MakeMakefile`

  `Module` used to generate a Makefile for C extensions

`RbConfig`

  Information of your configure and build of Ruby

`Gem`

  Package management framework for Ruby

## Extensions¶ ↑

`Coverage`

  Provides coverage measurement for Ruby

`Monitor`

  Provides an object or module to use safely by more than one thread

objspace

  Extends `ObjectSpace` module to add methods for internal statistics

`PTY`

  Creates and manages pseudo terminals

`Ripper`

  Provides an interface for parsing Ruby programs into S-expressions

`Socket`

  Access underlying OS socket implementations

# Default gems¶ ↑

## Libraries¶ ↑

`Abbrev`

  Calculates a set of unique abbreviations for a given set of strings

`Base64`

  Support for encoding and decoding binary data using a `Base64` representation

`Benchmark`

  Provides methods to measure and report the time used to execute code

`Bundler`

  Manage your Ruby application’s gem dependencies

`CGI`

  Support for the Common Gateway Interface protocol

`CSV`

  Provides an interface to read and write `CSV` files and data

`Delegator`

  Provides three abilities to delegate method calls to an object

`DidYouMean`

  “Did you mean?” experience in Ruby

`DRb`

  Distributed object system for Ruby

`English`

  Provides references to special global variables with less cryptic names

`ERB`

  An easy to use but powerful templating system for Ruby

`ErrorHighlight`

  Highlight error location in your code

`FileUtils`

  Several file utility methods for copying, moving, removing, etc

`Find`

  This module supports top-down traversal of a set of file paths

`Forwardable`

  Provides delegation of specified methods to a designated object

`GetoptLong`

  Parse command line options similar to the GNU C getopt_long()

`IPAddr`

  Provides methods to manipulate IPv4 and IPv6 IP addresses

`IRB`

  Interactive Ruby command-line tool for REPL (Read Eval Print Loop)

`OptionParser`

  Ruby-oriented class for command-line option analysis

`Logger`

  Provides a simple logging utility for outputting messages

`Mutex_m`

  Mixin to extend objects to be handled like a Mutex

`Net::HTTP`

  HTTP client api for Ruby

`Observable`

  Provides a mechanism for publish/subscribe pattern in Ruby

`Open3`

  Provides access to stdin, stdout and stderr when running other programs

`OpenStruct`

  `Class` to build custom data structures, similar to a `Hash`

`OpenURI`

  An easy-to-use wrapper for `Net::HTTP`, Net::HTTPS and Net::FTP

`PP`

  Provides a PrettyPrinter for Ruby objects

PrettyPrinter

  Implements a pretty printing algorithm for readable structure

`PStore`

  Implements a file based persistence mechanism based on a `Hash`

`Readline`

  Wrapper for `Readline` extencion and `Reline`

`Reline`

  GNU `Readline` and Editline by pure Ruby implementation.

`Resolv`

  Thread-aware DNS resolver library in Ruby

resolv-replace.rb

  Replace `Socket` DNS with `Resolv`

`RDoc`

  Produces HTML and command-line documentation for Ruby

`Rinda`

  The Linda distributed computing paradigm in Ruby

`SecureRandom`

  Interface for secure random number generator

`Set`

  Provides a class to deal with collections of unordered, unique values

`Shellwords`

  Manipulates strings with word parsing rules of UNIX Bourne shell

`Singleton`

  Implementation of the `Singleton` pattern for Ruby

`Tempfile`

  A utility class for managing temporary files

`Time`

  Extends the `Time` class with methods for parsing and conversion

`Timeout`

  Auto-terminate potentially long-running operations in Ruby

tmpdir.rb

  Extends the `Dir` class to manage the OS temporary file path

`TSort`

  Topological sorting using Tarjan’s algorithm

un.rb

  Utilities to replace common UNIX commands

`URI`

  A Ruby module providing support for Uniform Resource Identifiers

`YAML`

  Ruby client library for the `Psych` `YAML` implementation

`WeakRef`

  Allows a referenced object to be garbage-collected

## Extensions¶ ↑

`BigDecimal`

  Provides arbitrary-precision floating point decimal arithmetic

`Date`

  A subclass of `Object` includes `Comparable` module for handling dates

`DateTime`

  Subclass of `Date` to handling dates, hours, minutes, seconds, offsets

`Digest`

  Provides a framework for message digest libraries

`Etc`

  Provides access to information typically stored in UNIX /etc directory

`Fcntl`

  Loads constants defined in the OS fcntl.h C header file

`Fiddle`

  A libffi wrapper for Ruby

`IO`

  Extensions for Ruby `IO` class, including wait, nonblock and ::console

`JSON`

  Implements Javascript `Object` Notation for Ruby

`NKF`

  Ruby extension for Network Kanji Filter

`OpenSSL`

  Provides SSL, TLS and general purpose cryptography for Ruby

`Pathname`

  Representation of the name of a file or directory on the filesystem

`Psych`

  A `YAML` parser and emitter for Ruby

`Racc`

  A LALR(1) parser generator written in Ruby.

`Readline`

  Provides an interface for GNU `Readline` and Edit Line (libedit)

`StringIO`

  Pseudo I/O on `String` objects

`StringScanner`

  Provides lexical scanning operations on a `String`

`Syslog`

  Ruby interface for the POSIX system logging facility

`WIN32OLE`

  Provides an interface for OLE Automation in Ruby

`Zlib`

  Ruby interface for the zlib compression/decompression library

# Bundled gems¶ ↑

## Libraries¶ ↑

MiniTest

  A test suite with TDD, BDD, mocking and benchmarking

PowerAssert

  Power Assert for Ruby.

Rake

  Ruby build program with capabilities similar to make

Test::Unit

  A compatibility layer for MiniTest

REXML

  An XML toolkit for Ruby

RSS

  Family of libraries that support various formats of XML “feeds”

Net::FTP

  Support for the `File` Transfer Protocol

Net::IMAP

  Ruby client api for Internet Message Access Protocol

Net::POP3

  Ruby client library for POP3

Net::SMTP

  Simple Mail Transfer Protocol client library for Ruby

Matrix

  Represents a mathematical matrix.

Prime

  Prime numbers and factorization library

RBS

  RBS is a language to describe the structure of Ruby programs

TypeProf

  A type analysis tool for Ruby code based on abstract interpretation

DEBUGGER__

  Debugging functionality for Ruby