<commit_before># neobnc

Multi-tenant IRC bouncer (BNC), written in Go.

**Status**: Everything is hard-coded but it barely-works?

## Goals

* v1: Multi-user, low resource usage (target self-hosting on Raspberry Pi).
* v2: Out-of-band notifications (email? pushover?), listen on multiple IPs (load balance for multi tenants).
* v3: Built-in client (web? ssh?)
* v4+: focus more on web client, with drag-n-drop image uploads and whatnot.

## References

Related projects which we might use or refer to while implementing our BNC.

* BNC
  * https://github.com/xthexder/xbnc
  * https://github.com/neersighted/nbnc
* IRC Protocol
  * https://github.com/sorcix/irc
  * https://github.com/fluffle/goirc
* Other
  * https://github.com/lukevers/kittens IRC Bot with a swanky web UI.
  * https://www.irccloud.com/ BNC service with web-based UI.<commit_msg>Add references.<commit_after># neobnc

Multi-tenant IRC bouncer (BNC), written in Go.

**Status**: Everything is hard-coded but it barely-works?

## Goals

* v1: Multi-user, low resource usage (target self-hosting on Raspberry Pi).
* v2: Out-of-band notifications (email? pushover?), listen on multiple IPs (load balance for multi tenants).
* v3: Built-in client (web? ssh?)
* v4+: focus more on web client, with drag-n-drop image uploads and whatnot.

## References

Related projects which we might use or refer to while implementing our BNC.

* BNC
  * https://github.com/xthexder/xbnc
  * https://github.com/neersighted/nbnc
* IRC Protocol
  * https://github.com/sorcix/irc
  * https://github.com/fluffle/goirc
  * https://github.com/edmund-huber/ergonomadic
* Other
  * https://github.com/lukevers/kittens IRC Bot with a swanky web UI.
  * https://www.irccloud.com/ BNC service with web-based UI.

## Notes

Basic protocol draft:

```
->  PASS bar
->  NICK foo
->  USER foo localhost remotehost :real name
<-  :remotehost NOTICE * :Connecting...
<-  :remotehost 001 foo :Welcome to neobnc
<-  :remotehost 002 foo :Your host is <servername>, running version <version>
<-  :remotehost 003 foo :This server was created <date>
<-  :remotehost 004 foo remotehost <version> <available user modes> <available channel modes>
<-  PING :remotehost
->  PONG remotehost
```

## License

MIT.
{'fraction_non_alphanumeric': 0.12404836542767578, 'fraction_numerical': 0.008956560680698611, 'mean_word_length': 3.804301075268817, 'pattern_counts': {'":': 0, '<': 15, '<?xml version=': 0, '>': 13, 'https://': 13, 'lorem ipsum': 0, 'www.': 2, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '6656313', 'n_tokens_mistral': 780, 'n_tokens_neox': 733, 'n_words': 247}