Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/annsanns/morganite
Chat Client for a Pseudo Protocol
https://github.com/annsanns/morganite
Last synced: 9 days ago
JSON representation
Chat Client for a Pseudo Protocol
- Host: GitHub
- URL: https://github.com/annsanns/morganite
- Owner: AnnsAnns
- License: eupl-1.2
- Created: 2023-12-11T11:10:26.000Z (11 months ago)
- Default Branch: main
- Last Pushed: 2024-09-08T17:55:18.000Z (about 2 months ago)
- Last Synced: 2024-09-08T19:27:19.111Z (about 2 months ago)
- Language: Rust
- Size: 940 KB
- Stars: 3
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Morganite
![Morganite Chat Example](https://github.com/user-attachments/assets/713f6834-feea-450e-b965-b1ff788add70)
Morganite is a chat client for a [pseudo chat protocol](https://github.com/HAW-RN/protocol). It is written in Rust using Tokio TCP Sockets and Serde for serialization and deserialization of messages.
The protocol works in a serverless manner while also only having a direct connection to some of the clients, which requires routing using Distance Vector Routing with Poise Reverse & Split Horizon to mitigate routing loops.
It employs worker pools for handling incoming messages and sending messages to other clients. It also uses a timer to periodically send routing updates to other clients and channels to communicate between the workers and the main thread.
For the exact protocol specification see [HERE](https://github.com/HAW-RN/protocol).
## Usage
`cargo run :` to bind to a specific address and port otherwise it will bind to a default address and port.
See `help` for a list of available commands.
## License
This project is licensed under EUPLv1.2 see [HERE](./LICENSE). It may not be used without adhering to the license or explicit permission from the authors.
**This project is part of a university course. Unlicensed usage of this project to fulfill the course requirements is not allowed and would be considered plagiarism! We do not take any responsibility for the consequences of foolish actions and explicitly warn against it!**