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
The app is splat in two:
- a TUI client which displays messages
- a worker which receive messages
cargo install maydaycargo buildcargo build --releaseYou can replace mayday with cargo run --
TUI client
maydayworker
mayday workerAfter 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
uuid = "60de91cf-41fc-48ab-893e-b50ff514a706"
discussion_name = "IRC freenode"
[driver]
type = "irc"
channel = "#rust"
server = "chat.freenode.net"
#port = 6697
nickname = "mayday user"
alt_nicks = ["[mayday-user]"]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.
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 the copied driver 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!
The MIT license for this project can be seen here
