#10: Rust - gping, Sniffnet, Iced and Mountpoint-S3
A TUI ping tool, a network monitoring tool, a cross-platform GUI library and an S3 file client.
Welcome to Behind the Mutex! Our weekly newsletter summarizes notable activity in open-source, new and growing projects and releases.
In Case You Missed It
Explore Robusta’s codebase in our latest review:
The previous issue of our weekly newsletter:
Open Source Landscape
Behind the Mutex picks a few categories and explores new and popular projects and features there.
gping: https://github.com/orf/gping
gping, a Terminal User Interface (TUI) application, offers the ability to graphically represent ping information, providing visual insights into network performance. Its main traits:
Reporting on multiple hosts simultanuously.
Shortcuts to ping AWS regions, e.g.
gping aws:eu-west-1
.Graphing execution time of commands specified via
--cmd.
Likewatch
, but graphs the command’s elapsed time instead of its output.Graph customizations, including symbols, colors and dimensions.
Major platforms are supported.
Sniffnet: https://github.com/GyulyVGC/sniffnet
Want to gain insights from your network traffic? Sniffnet has got you covered! It is a network monitoring tool with well-thought user experience that is packed with many relevant features to meet your needs. Here’s a sneak peek:
Overall traffic stats, including per-protocol volumes.
Ability to filter observed traffic.
Real-time traffic charts.
Insights into domain names, network providers and local connections.
Geographical location of remote hosts.
Real-time inspection of network connections.
Custom notifications on network events.
Detailed reports for each connection, including IP addresses, ports, protocols, packet and byte counts, and more.
Iced: https://github.com/iced-rs/iced
If you are wondering how GUI is implemented in Sniffnet, the tool covered above, the answer is Iced, a cross-platform GUI library for Rust. It is strongly focused on simplicity and type-safety. As a result, Iced tries to provide simple building blocks than can be put together with strong typing to reduce the chance of runtime errors.
Inspired by The Elm Architecture, Iced expects you to split user interfaces into four different concepts:
State — the state of your application.
Messages — user interactions or meaningful events that you care about.
View logic — a way to display your state as widgets that may produce messages on user interaction.
Update logic — a way to react to messages and update your state.
Here’s a glimpse of the library’s rich set of features:
Developer-friendly type-safe API with reactive programming model.
Cross-platform support (Windows, macOS, Linux, and the Web)
Responsive layout.
Built-in and custom widgets.
Debug overlay with performance metrics.
First-class support for async actions.
A renderer-agnostic native runtime enabling integration with existing systems.
Mountpoint-S3: https://github.com/awslabs/mountpoint-s3
Mountpoint for Amazon S3 is a simple, high-throughput file client for mounting an Amazon S3 bucket as a local file system. With this tool, your applications can access objects stored in Amazon S3 through file operations like open
and read
. It automatically translates these operations into S3 object API calls, giving your applications access to the elastic storage and throughput of Amazon S3 through a file interface.
The client is based on the same AWS Common Runtime (CRT) used by most AWS SDKs. The CRT is a software library for interacting with AWS services, offering components like IO, HTTP, and encryption. It is purpose-built for high performance and low resource usage to make the most efficient use of your compute resources. This brings the same stability, performance, and technical support that you get from S3’s REST APIs and the AWS SDKs.
To use the client, your host needs access to valid AWS credentials:
mkdir ~/mnt
mount-s3 <your-bucket-name> ~/mnt
The client will run in the background by default, and the ~/mnt
directory now gives access to the objects in your S3 bucket.
To unmount your S3 bucket and exit Mountpoint for Amazon S3, run the umount
command:
umount ~/mnt
If you have any feedback or would like to see certain open-sources projects highlighted in our upcoming summaries and reviews, please feel free to comment, send an email or DM the author on Twitter @dalazx.
Until next time,
Behind the Mutex.