[rubygems/rubygems] Use a constant empty tar header to avoid extra allocations
[ruby.git] / doc / standard_library.rdoc
bloba9fca632f8d2af085925836f5e4b3878553bc0e1
1 = Ruby Standard Library
3 The Ruby Standard Library is a vast collection of classes and modules that you
4 can require in your code for additional features.
6 Below is an overview of libraries and extensions followed by a brief
7 description.
9 == Libraries
11 MakeMakefile:: Module used to generate a Makefile for C extensions
12 RbConfig:: Information of your configure and build of Ruby
13 Gem:: Package management framework for Ruby
15 == Extensions
17 Coverage:: Provides coverage measurement for Ruby
18 Monitor:: Provides an object or module to use safely by more than one thread
19 objspace:: Extends ObjectSpace module to add methods for internal statistics
20 PTY:: Creates and manages pseudo terminals
21 Ripper:: Provides an interface for parsing Ruby programs into S-expressions
22 Socket:: Access underlying OS socket implementations
24 = Default gems
26 * default gems are shipped with Ruby releases and also available as rubygems.
27 * default gems are not uninstallable from Ruby installation.
28 * default gems can be updated used by rubygems.
29     * e.g. `gem update json`
30 * default gems can be used with bundler environment like `unbundled_env`.
31 * default gems can be used any version on Gemfile.
32     * e.g. `gem "json", ">= 2.6"`
34 == Libraries
36 Benchmark:: Provides methods to measure and report the time used to execute code
37 Bundler:: Manage your Ruby application's gem dependencies
38 CGI:: Support for the Common Gateway Interface protocol
39 Delegator:: Provides three abilities to delegate method calls to an object
40 DidYouMean:: "Did you mean?" experience in Ruby
41 English:: Provides references to special global variables with less cryptic names
42 ERB:: An easy to use but powerful templating system for Ruby
43 ErrorHighlight:: Highlight error location in your code
44 FileUtils:: Several file utility methods for copying, moving, removing, etc
45 Find:: This module supports top-down traversal of a set of file paths
46 Forwardable:: Provides delegation of specified methods to a designated object
47 IPAddr:: Provides methods to manipulate IPv4 and IPv6 IP addresses
48 IRB:: Interactive Ruby command-line tool for REPL (Read Eval Print Loop)
49 OptionParser:: Ruby-oriented class for command-line option analysis
50 Logger:: Provides a simple logging utility for outputting messages
51 Net::HTTP:: HTTP client api for Ruby
52 Open3:: Provides access to stdin, stdout and stderr when running other programs
53 OpenStruct:: Class to build custom data structures, similar to a Hash
54 OpenURI:: An easy-to-use wrapper for Net::HTTP, Net::HTTPS and Net::FTP
55 PP:: Provides a PrettyPrinter for Ruby objects
56 PrettyPrinter:: Implements a pretty printing algorithm for readable structure
57 Prism:: A portable, error-tolerant Ruby parser
58 PStore:: Implements a file based persistence mechanism based on a Hash
59 Readline:: Wrapper for Readline extencion and Reline
60 Reline:: GNU Readline and Editline by pure Ruby implementation.
61 Resolv::  Thread-aware DNS resolver library in Ruby
62 RDoc:: Produces HTML and command-line documentation for Ruby
63 SecureRandom:: Interface for secure random number generator
64 Set:: Provides a class to deal with collections of unordered, unique values
65 Shellwords:: Manipulates strings with word parsing rules of UNIX Bourne shell
66 Singleton:: Implementation of the Singleton pattern for Ruby
67 Tempfile:: A utility class for managing temporary files
68 Time:: Extends the Time class with methods for parsing and conversion
69 Timeout:: Auto-terminate potentially long-running operations in Ruby
70 tmpdir.rb:: Extends the Dir class to manage the OS temporary file path
71 TSort:: Topological sorting using Tarjan's algorithm
72 un.rb:: Utilities to replace common UNIX commands
73 URI:: A Ruby module providing support for Uniform Resource Identifiers
74 YAML:: Ruby client library for the Psych YAML implementation
75 WeakRef:: Allows a referenced object to be garbage-collected
77 == Extensions
79 Date:: A subclass of Object includes Comparable module for handling dates
80 DateTime:: Subclass of Date to handling dates, hours, minutes, seconds, offsets
81 Digest:: Provides a framework for message digest libraries
82 Etc:: Provides access to information typically stored in UNIX /etc directory
83 Fcntl:: Loads constants defined in the OS fcntl.h C header file
84 Fiddle:: A libffi wrapper for Ruby
85 IO:: Extensions for Ruby IO class, including #wait, #nonblock and ::console
86 JSON:: Implements Javascript Object Notation for Ruby
87 OpenSSL:: Provides SSL, TLS and general purpose cryptography for Ruby
88 Pathname:: Representation of the name of a file or directory on the filesystem
89 Psych:: A YAML parser and emitter for Ruby
90 StringIO:: Pseudo I/O on String objects
91 StringScanner:: Provides lexical scanning operations on a String
92 WIN32OLE:: Provides an interface for OLE Automation in Ruby
93 Zlib:: Ruby interface for the zlib compression/decompression library
95 = Bundled gems
97 * bundled gems are shipped with Ruby releases and also available as rubygems.
98 * bundled gems are same as normal gems like `rails`, `rack`.
99     * They are only bundled with Ruby releases.
100     * They can be uninstallable from Ruby installation.
101     * They are needed to declare in Gemfile when use with bundler.
103 == Libraries
105 MiniTest:: A test suite with TDD, BDD, mocking and benchmarking
106 PowerAssert:: Power Assert for Ruby.
107 Rake:: Ruby build program with capabilities similar to make
108 Test::Unit:: A compatibility layer for MiniTest
109 REXML:: An XML toolkit for Ruby
110 RSS:: Family of libraries that support various formats of XML "feeds"
111 Net::FTP:: Support for the File Transfer Protocol
112 Net::IMAP:: Ruby client api for Internet Message Access Protocol
113 Net::POP3:: Ruby client library for POP3
114 Net::SMTP:: Simple Mail Transfer Protocol client library for Ruby
115 Matrix:: Represents a mathematical matrix.
116 Prime:: Prime numbers and factorization library
117 RBS:: RBS is a language to describe the structure of Ruby programs
118 TypeProf:: A type analysis tool for Ruby code based on abstract interpretation
119 DEBUGGER__:: Debugging functionality for Ruby
120 Racc:: A LALR(1) parser generator written in Ruby.
121 Mutex_m:: Mixin to extend objects to be handled like a Mutex
122 GetoptLong:: Parse command line options similar to the GNU C getopt_long()
123 Base64:: Support for encoding and decoding binary data using a Base64 representation
124 BigDecimal:: Provides arbitrary-precision floating point decimal arithmetic
125 Observable:: Provides a mechanism for publish/subscribe pattern in Ruby
126 Abbrev:: Calculates a set of unique abbreviations for a given set of strings
127 resolv-replace.rb:: Replace Socket DNS with Resolv
128 Rinda:: The Linda distributed computing paradigm in Ruby
129 DRb:: Distributed object system for Ruby
130 NKF:: Ruby extension for Network Kanji Filter
131 Syslog:: Ruby interface for the POSIX system logging facility
132 CSV:: Provides an interface to read and write CSV files and data