summaryrefslogtreecommitdiff
path: root/README.md
blob: 4b81d33d4517066c2c53a202d706073ac26236d7 (plain) (blame)
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
# Irc

An modern IRC toolkit for Elixir. Compatible IRCv3!

* `Irc.Parser` a versatile IRC parser;
* `Irc.Connection` a basic IRC connection (handling registration and socket);
* `Irc.Client` a fully featured and extensible IRC client.

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, ….

### 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).