No description
Find a file
2022-01-24 18:36:20 -05:00
docs/specs lots of changes 2022-01-24 10:23:06 -05:00
src create channel sync system to ensure everything is correct 2022-01-24 18:36:20 -05:00
test add tsconfig and rawlogbot 2021-12-05 17:44:13 -05:00
.gitignore initial commit, moving things over from the old repo 2021-12-05 17:42:41 -05:00
.tsconfig.json add tsconfig and rawlogbot 2021-12-05 17:44:13 -05:00
config.example.json update README and remove lazyload 2021-12-07 08:12:44 -05:00
LICENSE initial commit, moving things over from the old repo 2021-12-05 17:42:41 -05:00
package-lock.json update packages 2022-01-21 12:14:21 -05:00
package.json add axios 2021-12-05 20:07:25 -05:00
README.md lots of changes 2022-01-24 10:23:06 -05:00
reflection.js initial commit, moving things over from the old repo 2021-12-05 17:42:41 -05:00
reflection.key initial commit, moving things over from the old repo 2021-12-05 17:42:41 -05:00
reflection.pem initial commit, moving things over from the old repo 2021-12-05 17:42:41 -05:00

ReflectionIRCd

ReflectionIRCd is an IRCd that interfaces with Matrix, allowing you to use an IRC client to chat on Matrix.

This is very much not production-ready yet. There's console.logs all over the place, no testing or error checking, lots of bugs, etc. That said, it is usable for basic chatting.

Highlights

  • IRC first: The goal is for modern IRC clients to have feature parity with any other Matrix client
  • Standalone: Uses the Client-Server API, so you can use it with any homeserver
  • Built-in bouncer: Multiple IRC clients can be authenticated to a Matrix user
  • Multi-user: Log in to multiple Matrix users at the same time

Feature support

- Implemented
🟨 - Partially implemented, see notes
- Not implemented yet
- Not applicable

(IRCv3) denotes IRC features that might not be available in all clients

Name M->I I->M Notes
text, notice, emote messages
image, file, audio, video messages 🟨 Show up as links on IRC
Channel joins
Channel parts
Channel kicks
Channel bans 🟨 Single-user bans show up on IRC as kicks, there's no banlist yet
Channel invites
Channel topics
Channel powers
Channel lists/searching
Encrypted rooms
Rich text
Presence
Channel renaming (IRCv3) 🟨 Only when the canonical alias changes
Message replies (IRCv3) Clients without support will still receive the reply message, but it won't be marked as a reply
Message reactions (IRCv3) 🟨 🟨 Can't undo reactions yet
Extended invites (IRCv3)
Chat history (IRCv3)
Multiline messages (IRCv3)
Global display names (IRCv3)
Per-room display names (IRCv3)
Message editing (IRCv3)
Message deletion (IRCv3)

Running

Copy config.example.json to config.json, edit the values if needed, then npm run build and then node reflection.js to start it

Authentication

Authentication is done via SASL PLAIN, the username is your mxid and the password is an access token from another session plus your server domain, separated by a : (so access_token:matrix.org if your server is matrix.org). Note this is the domain for m.server, not necessarily the homeserver domain.