soju forked to be LESS SHIT
Go to file
Simon Ser 3919ee2036
Per-user dispatcher goroutine
This allows message handlers to read upstream/downstream connection
information without causing any race condition.

References: https://todo.sr.ht/~emersion/soju/1
2020-03-16 12:44:59 +01:00
cmd Rename project to soju 2020-03-13 18:13:03 +01:00
config Rename project to soju 2020-03-13 18:13:03 +01:00
.gitignore Add sojuctl to .gitignore 2020-03-13 18:14:14 +01:00
bridge.go Rename project to soju 2020-03-13 18:13:03 +01:00
db.go Rename project to soju 2020-03-13 18:13:03 +01:00
downstream.go Per-user dispatcher goroutine 2020-03-16 12:44:59 +01:00
go.mod Rename project to soju 2020-03-13 18:13:03 +01:00
go.sum Update dependencies 2020-03-13 16:18:53 +01:00
irc.go Rename project to soju 2020-03-13 18:13:03 +01:00
LICENSE Switch license to AGPLv3 2020-02-07 17:41:51 +01:00
README.md Strip client & network name from username 2020-03-16 09:32:18 +01:00
ring.go Rename project to soju 2020-03-13 18:13:03 +01:00
schema.sql Add support for SASL authentication 2020-03-13 15:12:44 +01:00
server.go Per-user dispatcher goroutine 2020-03-16 12:44:59 +01:00
upstream.go Per-user dispatcher goroutine 2020-03-16 12:44:59 +01:00
user.go Per-user dispatcher goroutine 2020-03-16 12:44:59 +01:00

soju

A user-friendly IRC bouncer.

  • Multi-user
  • Support multiple clients for a single user, with proper backlog synchronization
  • Support connecting to multiple upstream servers via a single IRC connection to the bouncer

Usage

sqlite3 soju.db <schema.sql
go run ./cmd/sojuctl create-user <username>
go run ./cmd/soju

Then connect with username <username>@chat.freenode.net and join #soju.

Contributing

Send patches on the mailing list, report bugs on the issue tracker.

License

AGPLv3, see LICENSE.

Copyright (C) 2020 Simon Ser