4.7 KiB
NOTICES — nirc-rs
This file collects project-level notices that affect the legal or operational status of nirc-rs features. It is intentionally separate from CHANGES.md (which is a release-engineering log) so that legal/compliance readers can find these notes quickly.
BitChat protocol module — withdrawn in 0.10.2
Status: Removed.
Affected versions: All releases up to and including 0.10.1 contained a
src/protocols/bitchat.rs module. It was removed in 0.10.2.
Date of removal: 2026-07.
What was removed
src/protocols/bitchat.rs— the entire protocol backend (libp2p-based P2P chat with mDNS discovery, gossipsub, noise handshake).ProtocolType::BitChatenum variant and all of its match arms intag(),label(),badge(),naim_color(), dispatcher routing, command parsing, TUI color tables, history-tag mapping, log sanitiser, and the F1 menubar "Connect → BitChat…" entry.Command::BitChatPeers,BitChatDm,BitChatSendFilevariants and their/bitchat …parser arms.ProtocolCommand::BitChat(BitChatCommand)dispatcher variant.- The
connect_bitchat()method onDispatcher. - The
libp2pdependency inCargo.toml. libp2p was only consumed bybitchat.rs; no other module imports it. Dropping it significantly reduces the dependency tree and compile time. The Noise primitive insrc/engine/crypto.rsusesx25519-dalek+aes-gcmdirectly (not libp2p), so ADC's encrypted client-client connections still work.
Why it was removed
The BitChat project — Jack Dorsey's recently-announced P2P messaging protocol — is the subject of active litigation in the Indian courts. The legal status of the protocol specification, the reference implementation, and downstream reimplementations such as the one previously shipped in nirc-rs is currently unclear. Specifically:
- Court filings have not yet established whether the BitChat protocol itself is encumbered by intellectual-property claims, or whether only the reference client is affected.
- There is live ambiguity about whether shipping a third-party implementation of the protocol exposes downstream distributors to secondary liability.
- The reference implementation's license terms have changed during the dispute, and it is not yet clear which license applies to derivative works that were created before the change.
Pending clarity on these points, we have removed the BitChat module from nirc-rs entirely. The risk of shipping an encumbered protocol backend outweighs the benefit of offering P2P chat that users can obtain from other sources in the meantime.
What this means for users
- Existing configs: Any
[[servers]]entry in~/.nirc/config.tomlwithprotocol = "bitchat"will be silently ignored at load time. You do not need to edit your config file, but you may remove the entries to clean it up. - Existing history files: Per-tab scrollback files in
~/.nirc/history/that were taggedP2P:<name>(the BitChat tab-key prefix) will fail to match any known protocol on load and will be silently assigned to the Status tab. The files themselves are not deleted; you can read them with a text editor if you need to recover the content. - Existing tabs: If you were connected to a BitChat network when you
last exited nirc-rs 0.10.1 or earlier, the tab will not reconnect on
startup. It will appear as an inert entry in the winlist until you
/closeit. - No data loss: Your IRC / Matrix / ADC / Discord / Stout / Spacebar / Nerimity history, configs, and credentials are unaffected.
Re-evaluation criteria
We will re-evaluate restoring the BitChat module when all of the following are true:
- The India courts case has reached a final judgement (not an interim order), OR the parties have publicly settled and the settlement terms are clear about downstream-implementation rights.
- The BitChat reference implementation's license is unambiguous and permits third-party reimplementations.
- There is at least one independent legal opinion (not from a party to the litigation) concluding that shipping a clean-room reimplementation of the protocol is safe.
Until then, the module will remain withdrawn. If you want P2P chat in nirc-rs in the meantime, the ADC protocol's client-client connections offer a similar feature set (direct file transfer, direct messages) over a hub-and-spoke topology rather than full mesh P2P.
Acknowledgement
We acknowledge the work of the original BitChat team and the broader P2P messaging community. The decision to withdraw the module is purely a legal-risk mitigation, not a commentary on the technical merits of the protocol or the people who built it.
Future notices
New entries will be appended below this line as needed.