module Cryload
Overview
Command Line Interface Handler for Cryload
Defined in:
cryload/ci_thresholds.crcryload/cli.cr
cryload/cli_options.cr
cryload/cli_validator.cr
cryload/duration.cr
cryload/error_category.cr
cryload/fd_limit.cr
cryload/histogram.cr
cryload/http_client.cr
cryload/load_generator.cr
cryload/logger.cr
cryload/phased_client.cr
cryload/rate_limiter.cr
cryload/request.cr
cryload/shutdown_coordinator.cr
cryload/stats.cr
cryload/version.cr
Constant Summary
-
DEFAULT_MAX_REDIRECTS =
5 -
MACOS_SYSTEM_CA_BUNDLE =
"/etc/ssl/cert.pem" -
macOS system CA bundle, used as a fallback when OpenSSL's compiled-in default certificate path (e.g. a Homebrew OPENSSLDIR baked into a statically linked libcrypto) does not exist on the user's machine.
-
VERSION =
{{ (`shards version /build/cryload/src/cryload-6.1.0/src/cryload/../..`).strip.stringify }}
Class Method Summary
- .client_tls_context(insecure : Bool) : OpenSSL::SSL::Context::Client
-
.clone_headers(headers : HTTP::Headers) : HTTP::Headers
HTTP::Request mutates the headers object it is handed (Host, Content-Length), so every worker needs its own copy once the load fibers run in parallel.
-
.connect_request(host : String, port : Int32, proxy : URI) : String
hostis the URI host as written, so an IPv6 literal keeps the brackets the CONNECT authority-form requires. - .create_direct_http_client(uri, timeouts : Timeouts = Timeouts.new, insecure : Bool = false) : PhasedClient
- .create_http_client(uri, timeouts : Timeouts = Timeouts.new, insecure : Bool = false, proxy : URI | Nil = nil) : PhasedClient
- .create_http_proxy_client(uri, proxy : URI, timeouts : Timeouts = Timeouts.new, insecure : Bool = false) : PhasedClient
- .create_https_proxy_client(uri, proxy : URI, timeouts : Timeouts = Timeouts.new, insecure : Bool = false) : PhasedClient
- .create_stats(request_number, duration_mode : Bool = false, benchmark_start : Time::Instant = Time.instant, url : String = "", output_format : String = "text", success_status_ranges : Array(Range(Int32, Int32)) = [200..299], ci_thresholds : CiThresholds = CiThresholds.new, progress_enabled : Bool = false, config : RunConfig = RunConfig.new, urls : Array(URI) = [] of URI)
- .default_tls_context : OpenSSL::SSL::Context::Client
- .display_url(urls : Array(URI)) : String
- .effective_port(uri : URI) : Int32
- .elapsed_ms(since : Time::Instant) : Float64
- .load_urls_from_file(path : String) : Array(URI)
- .proxy_authorization(proxy : URI) : String | Nil
- .proxy_request_target(uri : URI) : String
- .read_proxy_connect_status(socket : IO) : Int32
- .stats : Stats
-
.stats? : Stats | Nil
Nil until the run is configured, so the signal handler can fire before the load generator exists without blowing up.
- .tls_context_for(uri : URI, insecure : Bool)
Class Method Detail
HTTP::Request mutates the headers object it is handed (Host, Content-Length), so every worker needs its own copy once the load fibers run in parallel.
host is the URI host as written, so an IPv6 literal keeps the brackets
the CONNECT authority-form requires.
Nil until the run is configured, so the signal handler can fire before the load generator exists without blowing up.