cable.mdwn (2083B)
1 **Cable** is a protocol for peer-to-peer group chat. It operates differently 2 from the traditional server-client model, wherein the server is a centralized 3 authority. Instead, in Cable, every node in the network is equal to each other. 4 Nodes of a cabal (i.e. a particular group chat) share data with each other in 5 order to build a view of the state of that cabal. 6 7 8 Relevance to permacomputing 9 --------------------------- 10 11 Cable is designed to be: 12 13 - fairly simple to implement in any language, with minimal dependencies 14 - general enough to be used across different network transports 15 - useful, even if written as a partial implementation 16 - efficient in its use of network resources, by syncing only the relevant 17 subsets of the full dataset, and being compact over the wire 18 - not specific to any particular kind of database backend 19 20 As a protocol, Cable emphasizes efficient use of resources and bytes. Similarly 21 to [[Gemini]] and [[Uxn]], it has been developed to be implementable across 22 many different scales, levels of fidelity, and is designed to 23 agnostic/adaptable to many systems. 24 25 As a project it is built around values and goals that overlap significantly 26 with permacomputing. It prioritises collaboration within a scrappy community of 27 likeminded people over arbitrary technical contributions. 28 29 30 Limits and challenges 31 --------------------- 32 33 Cable makes use of modern cryptographic primitives as part of the protocol 34 design. While these have been chosen carefully to enable widespread 35 implementation in modern ([[C]] and onward) programming language ecosystems, 36 the choices still likely limits protocol implementation on 37 retrocomputing-adjacent hardware and languages. Similarly, at time of writing, 38 and while this is not a limitation of the protocol per say, the available 39 clients do not reflect the potential diversity of implementation and platforms 40 on which it could be implemented and used. 41 42 43 Links 44 ----- 45 46 - <https://github.com/cabal-club/cable> 47 - <https://codeberg.org/cabal/cable> 48 - <https://cabal.chat> 49 - <https://github.com/cabal-club/commons/blob/master/values.md> 50