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
- default gems are shipped with Ruby releases and also available as rubygems.
- default gems are not uninstallable from Ruby installation.
- default gems can be updated used by rubygems.
- e.g.
gem update json
- e.g.
- default gems can be used with bundler environment like
unbundled_env. - default gems can be used any version on Gemfile.
- e.g.
gem "json", ">= 2.6"
- e.g.
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::HTTPSandNet::FTP- PP
Provides a PrettyPrinter for Ruby objects
- PrettyPrinter
Implements a pretty printing algorithm for readable structure
- Prism
A portable, error-tolerant Ruby parser
- 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,#nonblockand.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
- 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
- bundled gems are shipped with Ruby releases and also available as rubygems.
- bundled gems are same as normal gems like
rails,rack.- They are only bundled with Ruby releases.
- They can be uninstallable from Ruby installation.
- They are needed to declare in Gemfile when use with bundler.
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
- Racc
A LALR(1) parser generator written in Ruby.