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>
|
|
|
|
</p>
|
2016-11-14 07:27:27 +00:00
|
|
|
|
2017-02-05 12:23:00 +00:00
|
|
|
## Status
|
|
|
|
|
|
|
|
**EXPECT BREAKING CHANGES TO OCCUR FREQUENTLY**. girc has **not hit version
|
|
|
|
1.0.0 yet!**
|
|
|
|
|
|
|
|
Changes are actively being made. At this time, most of the stateful parts of
|
|
|
|
girc are not accessible, as well as other minor consistencies while things
|
|
|
|
are still being flushed out. Not production ready! **_You've been warned!_**
|
|
|
|
|
2016-11-13 08:30:43 +00:00
|
|
|
## Features
|
|
|
|
|
2017-01-12 09:19:35 +00:00
|
|
|
- Focuses on simplicity, yet tries to still be flexible.
|
2017-02-12 06:39:55 +00:00
|
|
|
- Only requires standard library packages (uses 1 sub-repo package)
|
2017-01-12 09:19:35 +00:00
|
|
|
- Event based triggering/responses (and CTCP too!).
|
|
|
|
- Documentation is mostly on par.
|
2017-02-05 12:23:00 +00:00
|
|
|
- Full support for the IRCv3 spec.
|
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.
|
2017-01-12 09:19:35 +00:00
|
|
|
- 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.
|
|
|
|
|
2016-11-18 04:20:42 +00:00
|
|
|
## TODO
|
|
|
|
|
2017-01-20 12:25:53 +00:00
|
|
|
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
|
2016-11-13 08:36:02 +00:00
|
|
|
|
|
|
|
## 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
|
|
|
|
|
|
|
|
```
|
2017-02-09 21:03:49 +00:00
|
|
|
LICENSE: The MIT License (MIT)
|
|
|
|
Copyright (c) Liam Stanley <me@liamstanley.io>
|
|
|
|
|
|
|
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
|
|
of this software and associated documentation files (the "Software"), to deal
|
|
|
|
in the Software without restriction, including without limitation the rights
|
|
|
|
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
|
|
copies of the Software, and to permit persons to whom the Software is
|
|
|
|
furnished to do so, subject to the following conditions:
|
|
|
|
|
|
|
|
The above copyright notice and this permission notice shall be included in
|
|
|
|
all copies or substantial portions of the Software.
|
|
|
|
|
|
|
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
|
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
|
|
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
|
|
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
|
|
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
|
|
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
|
|
SOFTWARE.
|
2016-11-14 07:27:27 +00:00
|
|
|
```
|