Find a file
delthas 6e72071716
Route NAMES, WHO, WHOIS replies to the requesting downstream
Using labeled-response, the replies to several commands such as NAMES,
WHO, WHOIS can be routed back to a specific downstream, rather than
being broadcast to all downstreams.

For example, after this commit, if the server supports labeled-response,
if a downstream requests the NAMES or WHO or WHOIS of a channel, the
replies of the upstream will only be sent back to that downstream, and
the other downstreams won't receive these messages.
2020-03-25 23:21:14 +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
.build.yml ci: add builds.sr.ht manifest 2020-03-18 10:28:58 +01:00
.gitignore gitignore: add soju.db and soju.1 2020-03-25 13:44:32 +01:00
bridge.go Add downstream NAMES support 2020-03-25 09:47:26 +01:00
db.go Correctly set Channel.ID in DB.StoreChannel 2020-03-25 14:23:41 +01:00
downstream.go Route NAMES, WHO, WHOIS replies to the requesting downstream 2020-03-25 23:21:14 +01:00
go.mod Remove some IRCv3 constants 2020-03-19 14:51:45 +01:00
go.sum Remove some IRCv3 constants 2020-03-19 14:51:45 +01:00
irc.go Add upstream labeled-response capability support 2020-03-25 23:20:56 +01:00
LICENSE Switch license to AGPLv3 2020-02-07 17:41:51 +01:00
Makefile Add basic Makefile 2020-03-19 15:11:43 +01:00
README.md Fix deadlocks in single-upstream mode 2020-03-20 10:42:17 +01:00
ring.go Add more details to ring buffer panics 2020-03-24 09:22:40 +01:00
schema.sql schema: add Network.name 2020-03-19 00:06:48 +01:00
server.go Add a server-unique id to each downstream 2020-03-25 23:17:46 +01:00
service.go Add a "network status" command 2020-03-25 22:57:48 +01:00
soju.1.scd Add a "network status" command 2020-03-25 22:57:48 +01:00
upstream.go Route NAMES, WHO, WHOIS replies to the requesting downstream 2020-03-25 23:21:14 +01:00
user.go Consume ring buffer for networks added on-the-fly 2020-03-25 11:28:25 +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.

See the man page at soju.1.scd for more information.

Contributing

Send patches on the mailing list or on GitHub, report bugs on the issue tracker. Discuss in #soju on Freenode.

License

AGPLv3, see LICENSE.

Copyright (C) 2020 Simon Ser