# IRClib Zero dependencies library for creating anything using the IRC protocol - bots, clients, you name it. It includes a variety of utilities, such as a nick list class that manages mode prefixes for you, NickServ authentication checker and message formatting (colors!). [Read the Typedoc](https://lunasqu.ee/irclib/index.html) ## Getting started There is an example usage documented in [src/examples/connection-test.ts](https://gitlab.icynet.eu/IcyNetwork/irclib/-/blob/master/src/examples/connection-test.ts), but basically you have two ways to create an IRC client connection: 1. Use the `IRCBot` class. This just takes connection options and it uses `IRCSocketConnector` (so it will not work in the browser!) 2. Use the `IRCConnection` class directly. To use this, you need to provide your own connector in addition to the options. ### Connection options The connection options are documented in detail [here](https://lunasqu.ee/irclib/interfaces/IIRCOptions.html), but the most important are: - `host` - Server host. - `nick` - Your nickname. - `port` - Server port, defaults to 6667. - `ssl` - Use secure connection. - `channels` - String-list of channels to join on connect. ### Connectors This module provides two connectors: `IRCSocketConnector` for Node.js usage (`net` and `tls`) and `IRCWebSocketConnector` for browser usage (WebSockets). You can always write your own if you need something different. **These are not included in the main module!** You need to import them from `@icynet/irclib/lib/connector/[..]`. This is to prevent browser bundlers from including `net` and `tls`! ### Event handlers The main classes use a special custom [TypedEventEmitter](https://lunasqu.ee/irclib/classes/TypedEventEmitter.html) to send events. - [Connection wrapper events](https://lunasqu.ee/irclib/types/IRCCommunicatorEvents.html) - [Nick list events](https://lunasqu.ee/irclib/types/NickListEvents.html) Basically, you're mostly just going to need the `message` event for IRC. ## IRCv3 Currently, this module only supports SASL authentication capability.