Libraries to help with IRC development in Go. Mirror/fork of https://github.com/ergochat/irc-go https://github.com/ergochat/irc-go
irc
Go to file
Shivaram Lingamneni 915eacc79e fix an edge case in IRCReader
We were spuriously detecting a full buffer in the case where
the buffer has been expanded to its maximum size, but is not
actually full of data. An excellent find from @ProgVal!
2021-03-01 16:43:30 -05:00
client gofmt 2019-05-10 21:37:16 +10:00
ircevent remove support for CallbackTimeout 2021-02-23 16:36:47 -05:00
ircfmt fix greedy matching of bracketed escapes 2021-01-06 16:48:14 -05:00
ircmap ircmap: maps are always passed by ref lol, no need to do dis 2019-04-29 11:57:18 +10:00
ircmsg validate outgoing message tag content 2021-02-22 19:30:40 -05:00
ircreader fix an edge case in IRCReader 2021-03-01 16:43:30 -05:00
ircutils Add ircutils package 2016-11-28 16:27:27 +10:00
.check-gofmt.sh add ircreader 2021-02-13 19:57:21 -05:00
.gitignore add some test code 2018-04-26 23:32:27 -04:00
.travis.gofmt.sh add some test code 2018-04-26 23:32:27 -04:00
.travis.yml fix gofmt, run tests in travis 2020-11-16 17:45:34 -05:00
doc.go Rename lib 2017-06-15 10:21:10 -06:00
go.mod run go mod tidy 2020-11-15 22:35:22 -05:00
go.sum run go mod tidy 2020-11-15 22:35:22 -05:00
LICENSE Rename lib 2017-06-15 10:21:10 -06:00
Makefile update examples, run gofmt 2021-02-19 11:45:33 -05:00
README.md initial fixes and refactoring 2021-02-19 03:55:06 -05:00

GoshuIRC-Go

This is a bunch of self-contained packages that help with IRC development in Go. The package splits themselves are fairly similar to how things are split up in the original Python version.


GoDoc Build Status Coverage Status Go Report Card


I'm aiming for this to become a client library all of its own. The best path to that is writing a bunch of useful, testable, self-contained packages that I'm able to wire together!

These packages are still in their early stages. Specifically, they're probably not as well-optimised as we'd like, and the interfaces exposed by them may not be final. For specific package details, view the documentation of that package.

An example bot that uses these packages can be found here.

Packages:

  • ircmsg: IRC message handling, raw line parsing and creation.
  • ircfmt: IRC format codes handling, escaping and unescaping.
  • ircreader: Optimized reader for \n-terminated lines, with an expanding but bounded buffer.
  • ircevent: Work-in-progress client library (fork of thoj/go-ircevent).
  • gircclient: Another work-in-progress client library.
  • ircmap: IRC string casefolding.
  • ircmatch: IRC string matching (mostly just a globbing engine).
  • ircutils: Useful utility functions and classes that don't fit into their own packages.

Also check out the eventmgr library here, which helps with event attaching and dispatching.