girc -- A flexible IRC library for Go

Build Status GoDoc Go Report Card IRC Chat GitHub Issues License

## Features - Focuses on simplicity, yet tries to still be flexible. - Only requires standard library packages. - Event based triggering/responses (and CTCP too!). - Documentation is mostly on par. - Full support for the IRCv3 spec. [**WIP**] - Channel and user tracking. Easily find what users are in a channel, if a user is away, or if they are authenticated. - Client state/capability tracking. Easy methods to access capability data. - Built-in support for things you would commmonly have to implement yourself. - Nick collision detection and prevention. - Event/message rate limiting. - Channel, nick, and user validation on connection methods. - CTCP handling and auto-responses. - At this time, **expect breaking changes to occur frequently**. girc has **not hit version 1.0.0 yet!** ## TODO To review what is currently being worked on, or looked into, feel free to head over to the [project board](https://github.com/lrstanley/girc/projects/1) or the [issues list](https://github.com/lrstanley/girc/issues). ## Installing $ go get -u github.com/lrstanley/girc ## Examples See [the examples](https://godoc.org/github.com/lrstanley/girc#example-package) within the documentation for real-world usecases. ## Contributing Below are a few guidelines if you would like to contribute. Keep the code clean, standardized, and much of the quality should match Golang's standard library and common idioms. * Always test using the latest Go version. * Always use `gofmt` before committing anything. * Always have proper documentation before committing. * Keep the same whitespacing, documentation, and newline format as the rest of the project. * Only use 3rd party libraries if necessary. If only a small portion of the library is needed, simply rewrite it within the library to prevent useless imports. * Also see [golang/go/wiki/CodeReviewComments](https://github.com/golang/go/wiki/CodeReviewComments) ## License ``` The MIT License (MIT); Copyright (c) Liam Stanley ```