https://github.com/egithinji/pingu
A playground for implementing network protocols and utilities in Rust
https://github.com/egithinji/pingu
arp icmp ipv4 ping rust rust-lang tcp
Last synced: about 2 months ago
JSON representation
A playground for implementing network protocols and utilities in Rust
- Host: GitHub
- URL: https://github.com/egithinji/pingu
- Owner: egithinji
- Created: 2022-05-15T16:32:42.000Z (over 3 years ago)
- Default Branch: master
- Last Pushed: 2022-10-23T13:52:05.000Z (almost 3 years ago)
- Last Synced: 2025-05-07T07:58:46.487Z (6 months ago)
- Topics: arp, icmp, ipv4, ping, rust, rust-lang, tcp
- Language: Rust
- Homepage:
- Size: 154 KB
- Stars: 4
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# pingu
Pingu is a playground for implementing network protocols and utilities in Rust. For any utility, the aim is to successfully communicate with a real world host. For example it contains an implementation of [ ping](https://en.wikipedia.org/wiki/Ping_(networking_utility)), that aims to satisfy pages 14 and 15 of [RFC 792](https://datatracker.ietf.org/doc/html/rfc792):
## Why
The idea is to learn-by-doing with regards to network protocols and writing Rust code. An implementation is complete when tested against a real host on a network.## (Roughly) implemented so far
* [x] Arp
* [x] Ipv4
* [x] Ping
* [x] TCP handshake
* [ ] TCP
* [ ] UDP
* [ ] ...## Contributions
Contributions of code/feedback/ideas to the playground are very welcome. E.g. if you want to practice implementing a network tool/protocol in Rust.## Todo
* [ ] Add build instructions to Readme.