2022-01-15 22:19:29 +01:00
\documentclass { article}
\usepackage { fetamont}
2023-11-06 22:44:21 +01:00
\usepackage { listings}
\usepackage { protobuf/lang} % include language definition for protobuf
\usepackage { protobuf/style} % include custom style for proto declarations.
2022-01-15 22:19:29 +01:00
\begin { document}
\title {
2023-11-06 22:44:21 +01:00
\textffm { Meow} messaging protocol description}
2022-01-15 22:19:29 +01:00
\author { Author
2023-11-06 22:44:21 +01:00
\texttt { meow@redroom.link} }
2022-01-15 22:19:29 +01:00
\date { \today }
\maketitle
\begin { abstract}
2023-11-06 22:44:21 +01:00
2022-03-01 10:37:11 +01:00
The \textffm { Meow} protocol is a privacy driven instant messaging protocol.
2022-01-15 22:19:29 +01:00
That protocol might be used for creating secure and distributed chat services or allowing machine to machine communication.
This document describes the services provided by the protocol, the messaging structures and the transport protocols that might be used.
2022-03-01 10:37:11 +01:00
\begin { quote}
\centering
\emph { "Nous ne vivrons pas d'utopie collective, nous arrivons trop tard, le grand marché est déjà là.
Nous devons élaborer des stratégies de survie et de contamination, par la prolifération d'utopies privées, cryptées, qui se substitueront à l'ancien ordre social.
Tout ce que je sais, c'est que nous vivons dans un monde dont on ne s'évade pas"} \\
\footnotesize { Maurice G. Dantec for NOII (1997)}
\end { quote}
2022-01-15 22:19:29 +01:00
\end { abstract}
2023-11-06 22:44:21 +01:00
\section { Identity creation}
2022-01-15 22:19:29 +01:00
2023-11-06 22:44:21 +01:00
\section { Messages structure}
\lstinputlisting [language=protobuf2,style=protobuf] { ../pb/messages.proto}
2022-01-15 22:19:29 +01:00
2023-11-06 22:44:21 +01:00
\section { Invitation process}
2022-01-15 22:19:29 +01:00
\section { Transport protocols}
\subsection { URLs}
Server urls do define the protocol used for communicating with the server.
2022-09-02 12:07:21 +02:00
Some of the protocols will be described hereafter, but that list is not exhaustive and might be extended in the future.\\
2022-01-15 22:19:29 +01:00
Examples of a valid url:
\begin { verbatim}
http://myserver.com
https://user:pass@myauthenticatedserver.net:8443
mqtt://mymqttserver:6203
udp://myudpserver.org:41325
serial://dev/ttyS0
\end { verbatim}
\subsection { HTTP/S}
TODO
\subsection { UDP}
TODO
\subsection { Internetless alternative routing}
TODO
\section { Server Features}
\subsection { Server catalog}
2022-03-01 10:37:11 +01:00
Each server will cache a list of all the servers that it is aware of.
2022-01-15 22:19:29 +01:00
\subsection { Antispam}
2022-03-01 10:37:11 +01:00
2022-01-15 22:19:29 +01:00
\subsection { Self defense}
\section { Backup}
\section { Recovery}
\section { Very secure devices}
You don't trust your phone ?
2022-03-01 10:37:11 +01:00
\section { Roadmap}
\subsection { Nations}
Beyond the scope of user directories, we plan to implement the concept of virtual Nations.
Today still, most people don't really choose the nation they live in.
2022-01-15 22:19:29 +01:00
\end { document}