girc-atomic/README.md

66 lines
3.1 KiB
Markdown
Raw Normal View History

2017-01-12 13:53:56 +00:00
<p align="center"><a href="https://godoc.org/github.com/lrstanley/girc"><img width="600" src="https://i.imgur.com/Wh6otgh.png"></a></p>
<p align="center">girc -- A flexible IRC library for Go</p>
<p align="center">
<a href="https://travis-ci.org/lrstanley/girc"><img src="https://travis-ci.org/lrstanley/girc.svg?branch=master" alt="Build Status"></a>
<a href="https://godoc.org/github.com/lrstanley/girc"><img src="https://godoc.org/github.com/lrstanley/girc?status.png" alt="GoDoc"></a>
<a href="https://goreportcard.com/report/github.com/lrstanley/girc"><img src="https://goreportcard.com/badge/github.com/lrstanley/girc" alt="Go Report Card"></a>
<a href="http://byteirc.org/channel/L"><img src="https://img.shields.io/badge/ByteIRC-%23L-blue.svg" alt="IRC Chat"></a>
<a href="https://github.com/lrstanley/girc/issues"><img src="https://img.shields.io/github/issues/lrstanley/girc.svg" alt="GitHub Issues"></a>
<a href="https://raw.githubusercontent.com/lrstanley/girc/master/LICENSE"><img src="https://img.shields.io/github/license/lrstanley/girc.svg" alt="License"></a>
</p>
2016-11-14 07:27:27 +00:00
2016-11-13 08:30:43 +00:00
## 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**]
2017-01-19 08:40:44 +00:00
- 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!**
2016-11-13 08:30:43 +00:00
2016-11-18 04:20:42 +00:00
## 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).
2016-11-18 04:20:42 +00:00
2016-11-13 08:30:43 +00:00
## Installing
2016-12-07 05:15:02 +00:00
$ go get -u github.com/lrstanley/girc
## Examples
2017-01-19 08:40:44 +00:00
See [the examples](https://godoc.org/github.com/lrstanley/girc#example-package)
within the documentation for real-world usecases.
2016-11-14 07:27:27 +00:00
## Contributing
2017-01-19 08:40:44 +00:00
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.
2016-11-14 07:27:27 +00:00
* Always test using the latest Go version.
* Always use `gofmt` before committing anything.
* Always have proper documentation before committing.
2017-01-19 08:40:44 +00:00
* 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.
2016-11-14 07:27:27 +00:00
* Also see [golang/go/wiki/CodeReviewComments](https://github.com/golang/go/wiki/CodeReviewComments)
## License
```
The MIT License (MIT); Copyright (c) Liam Stanley <me@liamstanley.io>
```