SaaSHub helps you find the best software and product alternatives Learn more →
Top 23 Rust Networking Projects
-
tokio
A runtime for writing reliable asynchronous applications with Rust. Provides I/O, networking, scheduling, timers, ...
Project mention: Recommendations on file/dir/module structure, common dependencies, and/or anti-patterns for writing CLI tool in Rust | reddit.com/r/rust | 2023-03-18The main focus of the CLI tool would be around working on filesystem, and also making several network requests simultaneously. Although some may argue it would be easier/faster writing in other languages, this is more for my own learning to write in Rust. It will be a simple toy project at first, but I'd like to prepare for more complex Rust programming in the future with it. For instance, I see different directory / file / module structures used, Rust version / edition differences here and there, some common dependencies such as Tokio, etc.
-
Project mention: I just can't get RustScan to work. constantly the same error messages with 2 different versions | reddit.com/r/Kalilinux | 2023-01-12
Did you read https://github.com/RustScan/RustScan, find the link to https://github.com/RustScan/RustScan/wiki/Installation-Guide and came across "Docker is the recommended way of installing RustScan"?
-
InfluxDB
Access the most powerful time series database as a service. Ingest, store, & analyze all types of time series data in a fully-managed, purpose-built database. Keep data forever with low-cost storage and superior data compression.
-
bandwhich: A terminal bandwidth utilization tool. This CLI utility displays current network utilization by process, connection and remote IP/hostname.
-
Project mention: Modern full-featured mail server for low-maintenance self-hosted email | news.ycombinator.com | 2023-02-23
Wireguard itself can help you out with the task of forwarding traffic or creating an overlay network. There's also ngrok and tailscale for forwarding traffic and doing NAT traversal. Except for wireguard, these are commercial platforms, the open source alternatives I know of, are (respectively):
-
How does it compare to mio?
-
Project mention: Sniffnet: Open-source application developed in Rust to comfortably monitor your Network traffic | reddit.com/r/linux | 2023-03-22
Sniffnet is an open-source application developed in Rust to analyse your Internet traffic with ease.
-
ComposeDB is a graph database created by 3BoxLabs, a company well-known in the Web3 ecosystem for their work on decentralized identifiers (DIDs) and their main product the Ceramic network. Ceramic is a network of nodes that store and share composable data streams on top of libp2p, the network stack that also powers IPFS.
-
SonarLint
Clean code begins in your IDE with SonarLint. Up your coding game and discover issues early. SonarLint is a free plugin that helps you find & fix bugs and security issues from the moment you start writing code. Install from your favorite IDE marketplace today.
-
There is also https://github.com/smol-rs/smol which has components which you can compose into your own executor if you still need async IO but your usage patterns don't fit into the general purpose ones that Tokio provides.
-
> I mentioned really briefly that tcpdump lets you save pcap files. This is awesome because literally every network analysis tool in the universe understands pcap files. pcap files are like freshly baked chocolate chip cookies. Everybody loves them.
OMG, yes, very well put. When I get a bug report with a pcap file I know I'll be able to know exactly what happened.
Speaking of which: for one of my libraries, I want to make a diagnostic tool that replays an interaction. My library mostly operates at the TCP level (also some UDP), so I need to reconstruct the TCP flows in my tool to feed to my library. Either I need an easy-to-use Rust library to do that directly from pcap files [1] or some format that represents bytes moving over the flow (like sets of lines with a timestamp, flow id, and pretty hexdump of the bytes) with a tool that produces it from pcap. This seems like something that should exist? Wireshark's “Analyze > Follow > TCP Stream”’s “Save As…” with "hex dump" is kind of what I want, but it doesn't have timestamps, and it doesn't have a way to put everything (multiple flows, UDP packets also) in one file.
[1] https://crates.io/crates/pnet looks promising but it wasn't as obvious as I hoped how to plug it in for what I want.
-
shadow
Shadow is a discrete-event network simulator that directly executes real application code, enabling you to simulate distributed systems with thousands of network-connected processes in realistic and scalable private network experiments using your laptop, desktop, or server running Linux. (by shadow)
It is no longer active. If you are asking about Shadow, check out https://shadow.github.io
-
ntex
-
zenoh
zenoh unifies data in motion, data in-use, data at rest and computations. It carefully blends traditional pub/sub with geo-distributed storages, queries and computations, while retaining a level of time and space efficiency that is well beyond any of the mainstream stacks.
As some of you may already know, Zenoh is a pure rust pub/sub/query protocol that runs on pretty much anything (including microcontrollers) and abstracts, with a few simple primitives, pub/sub, distributed queries and distributed computations.
-
enet - Golden standard, tested and reliable - Not native rust - Does not seem to be popular in rust turbulence - Readme says it is not stable, but last meaningful commit was 1 year ago - Lacking documentation and examples - Not very popular laminar - Last meaningful release was 3 years ago (ignoring changes that fix typos etc.) - Despite this, everywhere (book, readme) there are mentions that it is under "active development" - Created for Amethyst, which is dead. I am kinda fearful that the same thing will happen to this lib. Tachyon - New and not tested in the battle - Many features that other libraries have planned, Tachyon actually has implemented - Lacking documentation (except for one big readme file), tests, examples Quinn - Big, under active development (daily commits), very popular because web development. - Modular, ability to just use core implemetation: quinn-proto - Do i really need TLS certificates and cryptography for my playing with friends game server? - Stream based, I would need to implement recv/send messages on top of it (not that hard tbh) - Only reliable stream and "unreliable" messages.
-
-
Project mention: aquatic_udp (UDP BitTorrent tracker) performance improvements: up to 2.25 million responses per second | reddit.com/r/rust | 2023-01-11
I've done a new round of benchmarking of open UDP BitTorrent tracker implementations. Results were great for aquatic_udp, achieving double the throughput of opentracker when running on 8 CPU cores:
-
distant
🚧 (Alpha stage software) Library and tooling that supports remote filesystem and process operations. 🚧
Project mention: Any recommendations for operating system authentication libraries? | reddit.com/r/rust | 2022-11-29The reason being is that I've written a service called distant with a companion neovim plugin, distant.nvim, and want to provide forms of authentication in the same vein as ssh.
-
ggrs
GGRS is a reimagination of GGPO, enabling P2P rollback networking in Rust. Rollback to the future!
https://www.gafferongames.com/ (excellent blog) https://github.com/gschup/ggrs (implementation of pvp rollback net code for fighting style games) https://en.m.wikipedia.org/wiki/Dead_reckoning https://en.m.wikipedia.org/wiki/Kalman_filter
-
Project mention: durian - a high-level general purpose client/server networking library | reddit.com/r/rust_gamedev | 2022-12-07
i've been using bevy_quinnet for my personal networking needs and loving it, and this is also built on top of quinn/QUIC so i'm starring :)
-
-
-
I've been working on a rust-native implementation of our agent protocol here at ngrok. It's something I've been wanting to do for a long time (since I started working here really), and I'm excited for it to be nearly "launch-ready"! It's already public on GitHub or crates.io, but we should be making some sort of "real" announcement Soontm. Feedback is welcome and appreciated!
-
tunneler
Tunnel TCP or UDP traffic over TCP, (mutual) TLS or DNS (authoritative server or direct connection), implemented in Rust
-
rust-cardano-ouroboros-network
Rust implementation of networking layer for the Ouroboros blockchain protocol using Tokio framework.
-
SaaSHub
SaaSHub - Software Alternatives and Reviews. SaaSHub helps you find the best software and product alternatives
Rust Networking related posts
- Zenoh Performances
- "Counter-Strike 2: Moving Beyond Tick Rate"
- Sniffnet: Open-source application developed in Rust to comfortably monitor your Network traffic
- What's everyone working on this week (12/2023)?
- Decentralized Databases: ComposeDB
- Sniffnet v1.1.2
- Announcing Sniffnet v1.1.2
-
A note from our sponsor - #<SponsorshipServiceOld:0x00007f160c88c308>
www.saashub.com | 27 Mar 2023
Index
What are some of the best open-source Networking projects in Rust? This list will help you:
Project | Stars | |
---|---|---|
1 | tokio | 19,836 |
2 | RustScan | 9,536 |
3 | Bandwhich | 7,740 |
4 | bore | 6,496 |
5 | MIO | 5,392 |
6 | sniffnet | 3,467 |
7 | rust-libp2p | 3,194 |
8 | smol | 2,757 |
9 | libpnet | 1,856 |
10 | shadow | 1,179 |
11 | ntex | 1,179 |
12 | zenoh | 749 |
13 | laminar | 727 |
14 | actix-net | 604 |
15 | aquatic | 360 |
16 | distant | 335 |
17 | ggrs | 321 |
18 | bevy_quinnet | 82 |
19 | qscan | 55 |
20 | bootleg_networking | 54 |
21 | ngrok-rs | 53 |
22 | tunneler | 42 |
23 | rust-cardano-ouroboros-network | 37 |