Merge branch 'master' of github.com:yunginnanet/girc-atomic
This commit is contained in:
commit
ea8bd7c774
107
README.md
107
README.md
|
@ -1,4 +1,4 @@
|
|||
<p align="center"><a href="#"><img width="270" src="https://tcp.ac/i/G5OTn"></a></p>
|
||||
<p align="center"><a href="https://tcp.ac/i/G5OTn" target="_blank"><img width="270" src="https://tcp.ac/i/G5OTn"></a></p>
|
||||
<p align="center">girc-atomic, a terrifying fork of an IRC library for Go</p>
|
||||
<p align="center">
|
||||
<a href="https://godoc.org/github.com/yunginnanet/girc-atomic"><img src="https://godoc.org/github.com/yunginnanet/girc-atomic?status.png" alt="GoDoc"></a>
|
||||
|
@ -11,57 +11,50 @@
|
|||
[Click here to see the changes in girc-atomic vs girc](https://github.com/lrstanley/girc/compare/master...yunginnanet:master)
|
||||
|
||||
## Status
|
||||
|
||||
### ₜₕₑ ₛₖy ᵢₛ 𝆑ₐₗₗᵢₙg ʇɥǝ sʞʎ ᴉs ⅎɐʅʅᴉuƃ
|
||||
|
||||
|
||||
### ₜₕₑ ₛₖy ᵢₛ 𝆑ₐₗₗᵢₙg ʇɥǝ sʞʎ ᴉs ⅎɐʅʅᴉuƃ
|
||||
### 𝚝𝚑𝚎𝚢 𝚜𝚑𝚘𝚞𝚕𝚍 𝚑𝚊𝚟𝚎 𝚕𝚒𝚜𝚝𝚎𝚗𝚎𝚍
|
||||
### ʇɥǝ sʞʎ ᴉs ⅎɐʅʅᴉuƃ ₜₕₑ ₛₖy ᵢₛ 𝆑ₐₗₗᵢₙg
|
||||
|
||||
### ʇɥǝ sʞʎ ᴉs ⅎɐʅʅᴉuƃ ₜₕₑ ₛₖy ᵢₛ 𝆑ₐₗₗᵢₙg
|
||||
|
||||
~~girc is fairly close to marking the 1.0.0 endpoint, which will be tagged as necessary, so you will be able to use this
|
||||
with care knowing the specific tag you're using won't have breaking changes~~
|
||||
|
||||
~~girc is fairly close to marking the 1.0.0 endpoint, which will be tagged as
|
||||
necessary, so you will be able to use this with care knowing the specific tag
|
||||
you're using won't have breaking changes~~
|
||||
|
||||
## Features
|
||||
|
||||
- Focuses on ~~simplicity~~ ʀᴀɪɴɪɴɢ ʜᴇʟʟғɪʀᴇ, yet tries to still be flexible.
|
||||
- Only requires [standard library packages](https://godoc.org/github.com/yunginnanet/girc-atomic?imports)
|
||||
- Event based triggering/responses ([example](https://godoc.org/github.com/yunginnanet/girc-atomic#ex-package--Commands)
|
||||
, and [CTCP too](https://godoc.org/github.com/yunginnanet/girc-atomic#Commands.SendCTCP)!)
|
||||
- Event based triggering/responses ([example](https://godoc.org/github.com/yunginnanet/girc-atomic#ex-package--Commands), and [CTCP too](https://godoc.org/github.com/yunginnanet/girc-atomic#Commands.SendCTCP)!)
|
||||
- [Documentation](https://godoc.org/github.com/yunginnanet/girc-atomic) is _mostly_ complete.
|
||||
- Support for almost all of the [IRCv3 spec](http://ircv3.net/software/libraries.html).
|
||||
- SASL Auth (currently only `PLAIN` and `EXTERNAL` is support by default, however you can simply
|
||||
implement `SASLMech` yourself to support additional mechanisms.)
|
||||
- Message tags (things like `account-tag` on by default)
|
||||
- `account-notify`, `away-notify`, `chghost`, `extended-join`, etc -- all handled
|
||||
seemlessly ([cap.go](https://github.com/yunginnanet/girc-atomic/blob/master/cap.go) for more info).
|
||||
- Channel and user tracking. Easily find what users are in a channel, if a user is away, or if they are authenticated (
|
||||
if the server supports it!)
|
||||
- Client state/capability tracking. Easy methods to access capability
|
||||
data ([LookupChannel](https://godoc.org/github.com/yunginnanet/girc-atomic#Client.LookupChannel)
|
||||
, [LookupUser](https://godoc.org/github.com/yunginnanet/girc-atomic#Client.LookupUser)
|
||||
, [GetServerOption (ISUPPORT)](https://godoc.org/github.com/yunginnanet/girc-atomic#Client.GetServerOption), etc.)
|
||||
- SASL Auth (currently only `PLAIN` and `EXTERNAL` is support by default,
|
||||
however you can simply implement `SASLMech` yourself to support additional
|
||||
mechanisms.)
|
||||
- Message tags (things like `account-tag` on by default)
|
||||
- `account-notify`, `away-notify`, `chghost`, `extended-join`, etc -- all handled seemlessly ([cap.go](https://github.com/yunginnanet/girc-atomic/blob/master/cap.go) for more info).
|
||||
- Channel and user tracking. Easily find what users are in a channel, if a
|
||||
user is away, or if they are authenticated (if the server supports it!)
|
||||
- Client state/capability tracking. Easy methods to access capability data ([LookupChannel](https://godoc.org/github.com/yunginnanet/girc-atomic#Client.LookupChannel), [LookupUser](https://godoc.org/github.com/yunginnanet/girc-atomic#Client.LookupUser), [GetServerOption (ISUPPORT)](https://godoc.org/github.com/yunginnanet/girc-atomic#Client.GetServerOption), etc.)
|
||||
- Built-in support for things you would commonly have to implement yourself.
|
||||
- Nick collision detection and prevention (also
|
||||
see [Config.HandleNickCollide](https://godoc.org/github.com/yunginnanet/girc-atomic#Config).)
|
||||
- Event/message rate limiting.
|
||||
- Channel, nick, and user validation
|
||||
methods ([IsValidChannel](https://godoc.org/github.com/yunginnanet/girc-atomic#IsValidChannel)
|
||||
, [IsValidNick](https://godoc.org/github.com/yunginnanet/girc-atomic#IsValidNick), etc.)
|
||||
- CTCP handling and auto-responses ([CTCP](https://godoc.org/github.com/yunginnanet/girc-atomic#CTCP))
|
||||
- ~~And more!~~
|
||||
- GOTTA GO FAST YOU GOTTA GO REALLY FAST
|
||||
- you can power hundreds of clients at the same time with this now
|
||||
- Nick collision detection and prevention (also see [Config.HandleNickCollide](https://godoc.org/github.com/yunginnanet/girc-atomic#Config).)
|
||||
- Event/message rate limiting.
|
||||
- Channel, nick, and user validation methods ([IsValidChannel](https://godoc.org/github.com/yunginnanet/girc-atomic#IsValidChannel), [IsValidNick](https://godoc.org/github.com/yunginnanet/girc-atomic#IsValidNick), etc.)
|
||||
- CTCP handling and auto-responses ([CTCP](https://godoc.org/github.com/yunginnanet/girc-atomic#CTCP))
|
||||
- ~~And more!~~
|
||||
- GOTTA GO FAST YOU GOTTA GO REALLY FAST
|
||||
- you can power hundreds of clients at the same time with this now
|
||||
|
||||
## Installing
|
||||
|
||||
~~$ go get -u github.com/yunginnanet/girc-atomic~~
|
||||
just use go modules probably
|
||||
~~$ go get -u github.com/yunginnanet/girc-atomic~~
|
||||
just use go modules probably
|
||||
|
||||
## Examples
|
||||
|
||||
See [the examples](https://godoc.org/github.com/yunginnanet/girc-atomic#example-package--Bare)
|
||||
within the documentation for real-world usecases. Here are a few real-world usecases/examples/projects which utilize the
|
||||
real girc:
|
||||
within the documentation for real-world usecases. Here are a few real-world
|
||||
usecases/examples/projects which utilize the real girc:
|
||||
|
||||
| Project | Description |
|
||||
| --- | --- |
|
||||
|
@ -73,11 +66,12 @@ Working on a project and want to add it to the list? Submit a pull request!
|
|||
|
||||
## Contributing
|
||||
|
||||
~~Please review the [CONTRIBUTING](CONTRIBUTING.md) doc for submitting issues/a guide on submitting pull requests and
|
||||
helping out.~~
|
||||
|
||||
~~Please review the [CONTRIBUTING](CONTRIBUTING.md) doc for submitting issues/a guide
|
||||
on submitting pull requests and helping out.~~
|
||||
|
||||
**OH GOD PLEASE MAKE IT STOP**
|
||||
|
||||
|
||||
## License
|
||||
|
||||
Copyright (c) 2016 Liam Stanley <me@liamstanley.io>
|
||||
|
@ -100,26 +94,23 @@ helping out.~~
|
|||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
||||
|
||||
girc artwork licensed under [CC 3.0](http://creativecommons.org/licenses/by/3.0/) based on Renee French under Creative
|
||||
Commons 3.0 Attributions...
|
||||
|
||||
or so I'm told. Then it was defiled by [some idiot](https://github.com/yunginnanet).
|
||||
girc artwork licensed under [CC 3.0](http://creativecommons.org/licenses/by/3.0/) based on Renee French under Creative Commons 3.0 Attributions...
|
||||
|
||||
or so I'm told. Then it was defiled by [some idiot](https://github.com/yunginnanet).
|
||||
|
||||
## References
|
||||
|
||||
* [IRCv3: Specification Docs](http://ircv3.net/irc/)
|
||||
* [IRCv3: Specification Repo](https://github.com/ircv3/ircv3-specifications)
|
||||
* [IRCv3 Capability Registry](http://ircv3.net/registry.html)
|
||||
* [IRCv3: WEBIRC](https://ircv3.net/specs/extensions/webirc.html)
|
||||
* [KiwiIRC: WEBIRC](https://kiwiirc.com/docs/webirc)
|
||||
* [ISUPPORT Specification Docs](http://www.irc.org/tech_docs/005.html) ([alternative 1](http://defs.ircdocs.horse/defs/isupport.html)
|
||||
, [alternative 2](https://github.com/grawity/irc-docs/blob/master/client/RPL_ISUPPORT/draft-hardy-irc-isupport-00.txt)
|
||||
, [relevant draft](http://www.irc.org/tech_docs/draft-brocklesby-irc-isupport-03.txt))
|
||||
* [IRC Numerics List](http://defs.ircdocs.horse/defs/numerics.html)
|
||||
* [Extended WHO (also known as WHOX)](https://github.com/quakenet/snircd/blob/master/doc/readme.who)
|
||||
* [RFC1459: Internet Relay Chat Protocol](https://tools.ietf.org/html/rfc1459)
|
||||
* [RFC2812: Internet Relay Chat: Client Protocol](https://tools.ietf.org/html/rfc2812)
|
||||
* [RFC2813: Internet Relay Chat: Server Protocol](https://tools.ietf.org/html/rfc2813)
|
||||
* [RFC7194: Default Port for Internet Relay Chat (IRC) via TLS/SSL](https://tools.ietf.org/html/rfc7194)
|
||||
* [RFC4422: Simple Authentication and Security Layer](https://tools.ietf.org/html/rfc4422) ([SASL EXTERNAL](https://tools.ietf.org/html/rfc4422#appendix-A))
|
||||
* [RFC4616: The PLAIN SASL Mechanism](https://tools.ietf.org/html/rfc4616)
|
||||
* [IRCv3: Specification Docs](http://ircv3.net/irc/)
|
||||
* [IRCv3: Specification Repo](https://github.com/ircv3/ircv3-specifications)
|
||||
* [IRCv3 Capability Registry](http://ircv3.net/registry.html)
|
||||
* [IRCv3: WEBIRC](https://ircv3.net/specs/extensions/webirc.html)
|
||||
* [KiwiIRC: WEBIRC](https://kiwiirc.com/docs/webirc)
|
||||
* [ISUPPORT Specification Docs](http://www.irc.org/tech_docs/005.html) ([alternative 1](http://defs.ircdocs.horse/defs/isupport.html), [alternative 2](https://github.com/grawity/irc-docs/blob/master/client/RPL_ISUPPORT/draft-hardy-irc-isupport-00.txt), [relevant draft](http://www.irc.org/tech_docs/draft-brocklesby-irc-isupport-03.txt))
|
||||
* [IRC Numerics List](http://defs.ircdocs.horse/defs/numerics.html)
|
||||
* [Extended WHO (also known as WHOX)](https://github.com/quakenet/snircd/blob/master/doc/readme.who)
|
||||
* [RFC1459: Internet Relay Chat Protocol](https://tools.ietf.org/html/rfc1459)
|
||||
* [RFC2812: Internet Relay Chat: Client Protocol](https://tools.ietf.org/html/rfc2812)
|
||||
* [RFC2813: Internet Relay Chat: Server Protocol](https://tools.ietf.org/html/rfc2813)
|
||||
* [RFC7194: Default Port for Internet Relay Chat (IRC) via TLS/SSL](https://tools.ietf.org/html/rfc7194)
|
||||
* [RFC4422: Simple Authentication and Security Layer](https://tools.ietf.org/html/rfc4422) ([SASL EXTERNAL](https://tools.ietf.org/html/rfc4422#appendix-A))
|
||||
* [RFC4616: The PLAIN SASL Mechanism](https://tools.ietf.org/html/rfc4616)
|
||||
|
|
Loading…
Reference in New Issue