https://github.com/bastidood/udp-multicast-chat
A simple chat room over UDP multicast written in Rust.
Science Score: 26.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
○CITATION.cff file
-
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
○DOI references
-
○Academic publication links
-
○Committers with academic emails
-
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (7.4%) to scientific vocabulary
Keywords
Repository
A simple chat room over UDP multicast written in Rust.
Statistics
- Stars: 7
- Watchers: 2
- Forks: 1
- Open Issues: 0
- Releases: 0
Topics
Metadata Files
README.md
UDP Multicast Chat Room
UDP multicast provides a mechanism for one-to-many communication in a network. Unlike broadcasting, a multicast may only be received by those subscribed to the particular multicast address of interest. This application implements a basic chat room multicast over a local area network.
[!CAUTION] All messages in the chat room are sent over unencrypted UDP multicast channels.

Architecture
For the user interface, this project uses the egui framework. In the back-end, the Tokio runtime powers all asynchronous workloads: networking, synchronization, and task scheduling.
The main thread runs the user interface logic. On a separate networking thread, the Tokio runtime handles incoming and outgoing messages. Information is passed between the two threads via channels.
On startup, the network back-end initializes a socket that binds to 0.0.0.0:3000. The socket then joins the multicast address 224.0.0.69:3000. To prevent multiple instances of the application to bind to the same address (on the same device), the SO_REUSEADDR flag is disabled. All of these values may be tweaked via the command-line interface.
```
Usage: udp-multicast-chat [-a
Networking options.
Options: -a, --addr multicast address that the socket must join -p, --port specific port to bind the socket to --reuse whether or not to allow the UDP socket to be reused by another application --help display usage information ```
To run the server
```bash
Bind to 0.0.0.0:3000, then join the multicast address
224.0.0.69:3000, and launch the user interface.
cargo run --release -- --addr 224.0.0.69 --port 3000 ```
Owner
- Name: Basti Ortiz
- Login: BastiDood
- Kind: user
- Location: Philippines
- Twitter: BastiDood
- Repositories: 2
- Profile: https://github.com/BastiDood
Just some dood hoping to make a career out of typing programming jargon to make stuff work.
GitHub Events
Total
- Fork event: 1
Last Year
- Fork event: 1
Committers
Last synced: 12 months ago
Top Committers
| Name | Commits | |
|---|---|---|
| Basti Ortiz | 3****d | 26 |
| Basti Ortiz | 3****d | 6 |
Issues and Pull Requests
Last synced: 12 months ago
All Time
- Total issues: 0
- Total pull requests: 0
- Average time to close issues: N/A
- Average time to close pull requests: N/A
- Total issue authors: 0
- Total pull request authors: 0
- Average comments per issue: 0
- Average comments per pull request: 0
- Merged pull requests: 0
- Bot issues: 0
- Bot pull requests: 0
Past Year
- Issues: 0
- Pull requests: 0
- Average time to close issues: N/A
- Average time to close pull requests: N/A
- Issue authors: 0
- Pull request authors: 0
- Average comments per issue: 0
- Average comments per pull request: 0
- Merged pull requests: 0
- Bot issues: 0
- Bot pull requests: 0
Top Authors
Issue Authors
Pull Request Authors
Top Labels
Issue Labels
Pull Request Labels
Dependencies
- 235 dependencies