mirror https://github.com/ninenines/ranch

Loïc Hoguin 7ceb7889d5 Fix Markdown in the guide 12 years ago
doc 4156fa3ebb Import the acceptor code from Cowboy 13 years ago
examples bfa353f8e7 Add a TCP Echo protocol example 12 years ago
guide 7ceb7889d5 Fix Markdown in the guide 12 years ago
src eec2e40258 Allow IP tuples and more when connecting transports 12 years ago
test 9cafa5e675 Add the 'ranch_protocol' behaviour 12 years ago
.gitignore 4156fa3ebb Import the acceptor code from Cowboy 13 years ago
AUTHORS 4156fa3ebb Import the acceptor code from Cowboy 13 years ago
LICENSE 4156fa3ebb Import the acceptor code from Cowboy 13 years ago
Makefile 4156fa3ebb Import the acceptor code from Cowboy 13 years ago
README.md 5ebe55a0fd Small README fixes 12 years ago
ROADMAP.md 4156fa3ebb Import the acceptor code from Cowboy 13 years ago
cover.spec 4156fa3ebb Import the acceptor code from Cowboy 13 years ago
rebar.config 46ada7fff0 Add Transport:connect/3 and remove types unneeded by R15B+ 13 years ago
rebar.tests.config 4156fa3ebb Import the acceptor code from Cowboy 13 years ago

README.md

Ranch

Ranch is a socket acceptor pool for TCP protocols.

Goals

Ranch aims to provide everything you need to accept TCP connections with a small code base and low latency while being easy to use directly as an application or to embed into your own.

Ranch provides a modular design, letting you choose which transport and protocol are going to be used for a particular listener. Listeners accept and manage connections on one port, and include facilities to limit the number of concurrent connections. Connections are sorted into pools, each pool having a different configurable limit.

Ranch also allows you to upgrade the acceptor pool without having to close any of the currently opened sockets.

The project is currently in early development. Comments and suggestions are more than welcome. To contribute, either open bug reports, or fork the project and send us pull requests with new or improved functionality. You should discuss your plans with us before doing any serious work, though, to avoid duplicating efforts.

Quick start

  • Add Ranch as a rebar dependency to your application.
  • Start Ranch and add one or more listeners.
  • Write protocol handlers for your application.

Getting started

  • Read the guide
  • Look at the examples in the examples/ directory
  • Build API documentation with make docs; open doc/index.html