README.md
# Pool
[](https://travis-ci.org/slogsdon/pool)
[](https://coveralls.io/r/slogsdon/pool)
[](https://hex.pm/packages/pool)
> Socket acceptor pool for Elixir
This is in-line with the goals of [Ranch][ranch]
or [barrel][barrel], with the implementations written in
Elixir as opposed to Erlang.
## Hey, Listen!
This isn't ready to be used! I'm hoping for the best,
but don't expect a working version to come out of the
next few commit. I expect this to be an involved
process to get something that works properly and
efficiently.
## TODO
- Listener
- Acceptor
- Transports
- TCP
- SSL
- UDP (?)
- others?
- Protocol examples
### Listener
- Leverages transport to listen on a port.
Transport returns the listening socket.
- Creates a list of acceptors for handling
connections.
- There's one of these per one running
protocol.
### Acceptor
- Utilizes protocol to handle connection.
- Should message listener on start/end of
accepting connection.
- There are many of these per one running
protocol.
### Protocol
- Interacts with connection via transport.
### Transport
- Interacts with the network transport layers
by leveraging Erlang built-in modules or by
constructing raw packets.
## License
Pool is release under the MIT license.
See [LICENSE][license] for details.
[ranch]: https://github.com/ninenines/ranch
[barrel]: https://github.com/benoitc/barrel
[license]: https://github.com/slogsdon/pool/blob/master/LICENSE