How httprb/http works
http.rb is a Ruby HTTP client: callers configure a chainable session, construct requests, exchange them over managed connections, and receive parsed, streamable responses. The graph includes the documented persistent-session, redirect, timeout, retry, feature, and form-encoding capabilities. Sampled excerpts support the session/client, request-building, response-parsing, and retry relationships; unsampled subsystem links are limited to those documented or directly evident from the tree.
Main entry points: session.rb Session · client.rb HTTP client · feature.rb Feature middleware · builder.rb Request builder
Components 24
Public API
- HTTP API
lib/http.rb - Chainable config
lib/http/chainable.rb - Session
lib/http/session.rb - Options
lib/http/options/definitions.rb
Request Processing
- Request builder
lib/http/request/builder.rb - Request
lib/http/request.rb - Form encoding
lib/http/form_data.rb - URI handling
lib/http/uri/parsing.rb
Transport and Response
- HTTP client
lib/http/client.rb - Connection
lib/http/connection.rb - Request writer
lib/http/request/writer.rb - Response parser
lib/http/response/parser.rb - Response
lib/http/response.rb - Streaming body
lib/http/response/body.rb - Timeout handling
lib/http/timeout/per_operation.rb
Client Capabilities
- Redirector
lib/http/redirector.rb - Retry performer
lib/http/retriable/performer.rb - Feature middleware
lib/http/feature.rb - Digest auth
lib/http/features/digest_auth.rb - Response caching
lib/http/features/caching.rb - Memory cache
lib/http/features/caching/in_memory_store.rb - Compression
lib/http/features/auto_deflate.rb - Logging and metrics
lib/http/features/instrumentation.rb
Other components
- Ruby caller
Connections 24
- Ruby caller → HTTP API: calls
- HTTP API → Chainable config: exposes
- Chainable config → Session: configures
- Session → Options: merges options
- Session → Request builder: builds request
- Request builder → URI handling: resolves URI
- Request builder → Form encoding: encodes form
- Request builder → Request: creates request
- Session → HTTP client: performs request
- HTTP client → Request: processes request
- HTTP client → Connection: uses connection
- Connection → Request writer: writes request
- Connection → Response parser: feeds response bytes
- Response parser → Response: parses response
- Response → Streaming body: provides body
- HTTP client → Retry performer: delegates retries
- HTTP client → Feature middleware: applies features
- Session → Redirector: follows redirects
- Connection → Timeout handling: uses I/O timeouts
- Feature middleware → Digest auth: registers feature
- Feature middleware → Response caching: registers feature
- Response caching → Memory cache: stores entries
- Feature middleware → Compression: registers feature
- Feature middleware → Logging and metrics: registers feature