MAYDAY 🗣️✉️
A multi-messaging-sevice aggregator into an all-in-one application (android's app beeper-like). The goal is to extend the supported messaging services by writing and sharing your drivers!
Please fully read How to use
Currently supported:
- loopback
- IRC
- ChatGPT
- Telegram
- Messenger
- Matrix
- ...add yours! see contribute

How to use
The app is splat in two:
- a TUI client which displays messages
- a worker which receive messages
Install
cargo install mayday
Compile
cargo build
cargo build --release
Run
You can replace mayday with cargo run --
TUI client
mayday
worker
mayday worker
Using messaging services
After the first usage, mayday will create a config repository which stores messaging service drivers:
- Linux:
/home/$USER/.config/mayday - Windows:
C:\Users\$USER\AppData\Roaming\Julien-cpsn\mayday - macOS:
Users/$USER/Library/Application Support/com.Julien-cpsn.mayday
Add your desired messing service configuration file in this folder. Each service template is available in example_resources.
E.g. for IRC
= "60de91cf-41fc-48ab-893e-b50ff514a706"
= "IRC freenode"
[]
= "irc"
= "#rust"
= "chat.freenode.net"
#port = 6697
= "mayday user"
= ["[mayday-user]"]
Cleaning conversations
After the first usage, mayday will create a cache repository which stores messages history:
- Linux:
/home/$USER/.config/mayday - Windows:
C:\Users\$USER\AppData\Roaming\Julien-cpsn\mayday - macOS:
Users/$USER/Library/Application Support/com.Julien-cpsn.mayday
Erasing a file will reset the history.
Contribute
You can develop a new messaging service driver as follows.
- Copy
loopback.rsfromsrc/driverstosrc/drivers<my_awesome_driver>.rs - Add your driver to the
MessagingDriverConfigsenum insrc/drivers/mod.rs - Fill with your code. Keep in mind that
active_poll_received_messagesis called by the client (so when you are using the app)passive_poll_received_messagesis called by the background worker
- Update this README
- Add a configuration example in
example_resources - Create a pull request!
Star history
License
The MIT license for this project can be seen here