vs. Meshtastic & MeshCore
Honest positioning, because this document will be read by both communities. Both projects are good at what they aim at; chIRpChat aims somewhere else.
| Meshtastic | MeshCore | chIRpChat | |
|---|---|---|---|
| Primary goal | off-grid mesh messaging | leaner off-grid mesh, clean roles | chat network at scale, off-grid capable |
| Client app | custom apps + protobuf API | custom apps | any IRC client, unmodified |
| Routing | managed flood | flood discovery → direct paths | registration + directed paths; flood for discovery only |
| Wide-area transport | MQTT broker (central) | — | router federation over peer TCP, no broker |
| Identity | node id (+PKC channels) | Ed25519 key | Ed25519 key is the identity; multi-device shared keys |
| Message privacy | encrypted channels | encrypted | plaintext by policy, signed/attested (tiered: tags + checkpoints) |
| Group chat | encrypted flood channels | room servers (separate role) | router-sequenced channels, federation merge, gap backfill |
| History/recovery | none (best-effort) | room server timestamp sync | sequence numbers + ranged backfill; join scrollback |
| Roles | ~10 device roles | separate firmwares per role | 2 binaries (node, router; relay = build flag) |
| Loss recovery | ACK + rebroadcast | ACK + retry | seq/backfill + ACK; network-as-WAL |
| Multi-speed RF | one preset per mesh | one preset | lane plans: concurrent presets/frequencies, probing, burst lanes |
| Bulk transfer | no | no | DCC over burst lanes |
| Linux native | portduino port | – (firmware focus) | first-class lrcd router/daemon |
What chIRpChat consciously gives up:
- Confidentiality. Meshtastic/MeshCore encrypt; chIRpChat’s charter is public plaintext chat with verifiable origin (IDENTITY.md spells out exactly what the 8-byte tags do and don’t prove). If you need private comms, use those projects — different tool.
- Serverless purity. chIRpChat has infrastructure (routers). That’s the
point: infrastructure is what makes tens of thousands of users converge
on one
#channelwithout melting the spectrum. - Protocol compatibility. chIRpChat does not interoperate with either mesh on the air. It coexists politely (CAD, duty cycle, distinct version bits) and gratefully reuses their published lessons (pin maps, sleep mechanics, retry constants — credited in the docs where used).