Hermes banner

Hermes

12 devlogs
77h 1m 55s

A peer-to-peer (P2P) messaging tool built in Python. This allows you to manipulate ports and set custom scripts in a custom scripting language.

Demo Repository

Loading README...

ishansreejith10

I refined the web ui further with improvements like notification counters, deleting and renaming chats, a timestamp after messages and a fresher look.

Attachment
0
ishansreejith10

I have added icons to display status such as database connection, peer online status and more. I have also improved the signal readiness to reduce message receiving time and reduce battery drain. I have also added commands like ctrl+s to close the sidebar in both the TUI and web UI and alt+up/down to rapidly switch chats. I have also improved the web UI

Attachment
0
ishansreejith10

I fixed a dangerous bug that caused messages to have delay when sending. I also made the reference number consistent to make sure P2P messaging works over busy networks

Attachment
0
ishansreejith10

I have implemented py-ratatui as an extra feature. The cli has a new look and I have also added simple networking tools like port creation to add more customizability. I also made an install script. For the web ui, I removed possible bugs in the pipeline and added peer search, p2p chats, and generalized features between the cli and web ui to make them more interchangeable. I have also corrected broadcast mapping. I have attached the first implementation of the py-ratatui.

Attachment
0
ishansreejith10

I bundled the whole program and made it ready for release.

Attachment
0
ishansreejith10

I imported the STUN UDP hole puncher after shifting away from a temporary custom-made one. I have attached a screenshot of UDP hole punching being used to locate nearby devices on the same internet

Attachment
0
ishansreejith10

I am starting to work on a sub-project called HermesD which is an extension of Hermes, so I will include it here. HermesD is an extended version of Hermes, which includes port management, network scanning and configuration settings. I have attached a screenshot of the updated menu.

Attachment
0
ishansreejith10

i made the password section not show in the terminal to add more safety

Attachment
0
ishansreejith10

There hasnt been much devlogs but I improved the UI a lot and made it actually work with firebase and P2P. I am focusing on the CLI for now since the CLI is more powerful and the main part. I am also trying a new system where instead of group chats, there’s rooms you can join using their passcode and room number, similar to zoom. This will simplify the user experience while also adding innovation. For now, it is experimental.

Attachment
0
ishansreejith10

Theres a new look to the website but it still needs to be improved

Attachment
0
ishansreejith10

Implemented proper firebase support after switching away from flask.

Attachment
0
ishansreejith10

I didnt devlog at all, so Im going to make quite a large devlog. So I initialised the project, created a P2P and TCP pipeline, and I enabled STUN which is a UDP hole puncher. I also built a web client that uses firebase to load messages over UDP and TCP. The terminal client has a simplified format that is somewhat similar to a chat interface and has security features like encryption using private keys and even custom python scripts for custom encryption. The UDP hole punching mostly works but may experience some delays due to the limited processing power of the Google STUN servers. I have attached the beta version of the web client. It does take a while to load since I just initialised the firebase.

Attachment
0