https://github.com/bastidood/udp-multicast-chat

A simple chat room over UDP multicast written in Rust.

https://github.com/bastidood/udp-multicast-chat

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

cli rust udp
Last synced: 9 months ago · JSON representation

Repository

A simple chat room over UDP multicast written in Rust.

Basic Info
  • Host: GitHub
  • Owner: BastiDood
  • Language: Rust
  • Default Branch: main
  • Homepage:
  • Size: 167 KB
Statistics
  • Stars: 7
  • Watchers: 2
  • Forks: 1
  • Open Issues: 0
  • Releases: 0
Topics
cli rust udp
Created almost 4 years ago · Last pushed about 2 years ago
Metadata Files
Readme

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.

UI Screenshot

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 ] [-p ] [--reuse]

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

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

All Time
  • Total Commits: 32
  • Total Committers: 2
  • Avg Commits per committer: 16.0
  • Development Distribution Score (DDS): 0.188
Past Year
  • Commits: 0
  • Committers: 0
  • Avg Commits per committer: 0.0
  • Development Distribution Score (DDS): 0.0
Top Committers
Name Email 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

Cargo.lock cargo
  • 235 dependencies
Cargo.toml cargo