= ranch(7) == Name ranch - Socket acceptor pool for TCP protocols == Description Ranch is a socket acceptor pool for TCP protocols. Ranch manages listeners which are a set of processes that accept and manage connections. The connection's transport and protocol modules are configured per listener. Listeners can be inspected and reconfigured without interruptions in service. == Modules Functions: * link:man:ranch(3)[ranch(3)] - Socket acceptor pool * link:man:ranch_proxy_header(3)[ranch_proxy_header(3)] - PROXY protocol Transports: * link:man:ranch_ssl(3)[ranch_ssl(3)] - SSL transport * link:man:ranch_tcp(3)[ranch_tcp(3)] - TCP transport Behaviors: * link:man:ranch_protocol(3)[ranch_protocol(3)] - Protocol modules * link:man:ranch_transport(3)[ranch_transport(3)] - Transport modules == Dependencies * ssl - Secure communication over sockets All these applications must be started before the `ranch` application. To start Ranch and all dependencies at once: [source,erlang] ---- {ok, _} = application:ensure_all_started(ranch). ---- == Environment The `ranch` application defines one application environment configuration parameter. profile (false):: When enabled, Ranch will start `eprof` profiling automatically. + You can use the `ranch_app:profile_output/0` function to stop profiling and output the results to the files 'procs.profile' and 'total.profile'. Do not use in production. == See also ssl(7)