108 lines
4.7 KiB
Markdown
108 lines
4.7 KiB
Markdown
# 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::BitChat` enum variant and all of its match arms in
|
|
`tag()`, `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`, `BitChatSendFile` variants and
|
|
their `/bitchat …` parser arms.
|
|
- `ProtocolCommand::BitChat(BitChatCommand)` dispatcher variant.
|
|
- The `connect_bitchat()` method on `Dispatcher`.
|
|
- The `libp2p` dependency in `Cargo.toml`. libp2p was only consumed by
|
|
`bitchat.rs`; no other module imports it. Dropping it significantly
|
|
reduces the dependency tree and compile time. The Noise primitive in
|
|
`src/engine/crypto.rs` uses `x25519-dalek` + `aes-gcm` directly (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.toml`
|
|
with `protocol = "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 tagged `P2P:<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
|
|
`/close` it.
|
|
- **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:
|
|
|
|
1. 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.
|
|
2. The BitChat reference implementation's license is unambiguous and
|
|
permits third-party reimplementations.
|
|
3. 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.
|