Ranch User Guide


Table of Contents

I. Interface
1. Introduction
1.1. Prerequisites
1.2. Supported platforms
1.3. Versioning
2. Listeners
2.1. Starting a listener
2.2. Stopping a listener
2.3. Suspending and resuming a listener
2.4. Default transport options
2.5. Listening on a random port
2.6. Listening on privileged ports
2.7. Accepting connections on an existing socket
2.8. Limiting the number of concurrent connections
2.9. Customizing the number of acceptor processes
2.10. When running out of file descriptors
2.11. Using a supervisor for connection processes
2.12. Upgrading
2.13. Changing transport options
2.14. Obtaining information about listeners
3. Transports
3.1. TCP transport
3.2. SSL transport
3.3. Sending and receiving data
3.4. Sending files
3.5. Upgrading a TCP socket to SSL
3.6. Writing a transport handler
4. Protocols
4.1. Writing a protocol handler
4.2. Using gen_statem
5. Embedded mode
5.1. Embedding
II. How to
6. Writing parsers
6.1. Parsing text
6.2. Parsing binary
7. SSL client authentication
7.1. Purpose
7.2. Obtaining client certificates
7.3. Transport configuration
7.4. Authentication
III. Advanced
8. Internals
8.1. Architecture
8.2. Number of acceptors
8.3. Platform-specific TCP features
IV. Additional information
A. Upcoming changes in Ranch 2.0
B. Changes since Ranch 1.8
B.1. Ranch 1.8.1
C. Migrating from Ranch 1.7 to 1.8
C.1. Bugs fixed
D. Migrating from Ranch 1.6 to 1.7
D.1. Features added
D.2. New functions
D.3. Bugs fixed
E. Migrating from Ranch 1.5 to 1.6
E.1. Features added
E.2. Experimental features added
E.3. Changed behaviors
E.4. New functions
E.5. Bugs fixed
F. Migrating from Ranch 1.x
F.1. 1.5.0
F.2. 1.4.0
F.3. 1.3.0
F.4. 1.2.1
F.5. 1.2.0
F.6. 1.1.0
F.7. 1.0.0