1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
|
# Elixir/Irc
A modern IRC toolkit for Elixir. Compatible IRCv3. Meant to build clients, bouncers, bots, servers, and services.
* `Irc.Parser` a versatile IRC parser;
* `Irc.Connection` a basic IRC connection (handling registration and socket);
* `Irc.Server` client server (todo);
* `Irc.TS6` TS6 Server (todo);
* `Irc.Client` a fully featured and extensible IRC client (should be usable with `.Connection`, `.Server` or `.TS6`).
Examples of usage: `Irc.Shout` (a simple connect-join-message-quit on Connection), `Irc.Client` on BaseClient.
Future versions may include: bots, server parser, server-to-server connections, ….
**DO NOT USE, it's all moving parts and they'll move and shuffle and move for a long time before being a bit stable!**
### Supported features
The eventual goal is to support most of the modern IRC specifications.
The parser supports the following capabs: `message-tags`, `multi-prefix`, `account-tag`, `server-time`.
The connection supports the following: `sasl`, `sts`, `cap-notify`, `batch`.
The client has modules for the following: `account-notify`, `away-notify`, `userhost-in-names`, `chghost`,
`invite-notify`, `extended-join`; and `labeled-response` - `echo-message`.
## Installation
If [available in Hex](https://hex.pm/docs/publish), the package can be installed
by adding `irc` to your list of dependencies in `mix.exs`:
```elixir
def deps do
[
{:irc, "~> 0.1.0"}
]
end
```
Documentation can be generated with [ExDoc](https://github.com/elixir-lang/ex_doc)
and published on [HexDocs](https://hexdocs.pm). Once published, the docs can
be found at [https://hexdocs.pm/irc](https://hexdocs.pm/irc).
|