In this blog post, I will explain how I built a network dongle using the ESP32-C6 in Rust. The idea is simple: attach the board to any local network and get persistent remote access to any device on it from anywhere (no VPN, no port forwarding, no changes to the host machine) and get access to other network tools.
In this post, I will build a minimal ping-pong server and client in Rust using tokio-tungstenite, and use the client to measure real round-trip times across 100 exchanges (collecting min, avg, and max latency) using a Cloudflare Tunnel between them. I want to use this test for a future blog post where I will try to encapsulate other protocols in it.
While building a TCP server (TcpListener) in Rust, I needed to process connections one at a time. I kept noticing that new connections were being accepted but never actually processed, they just hung in standby until the client gave up and disconnected. In this post, I will walk through a minimal TCP server that uses a Semaphore to force max concurrent connections.
Today I will share my journey of preparing a working environment to develop Rust for Espressif boards. Discover how I made the decision to work with Rust for embedded systems, a language known for its safety, speed, and reliability. I’ll also guide you through the process of preparing your development environment, like installing necessary tools, and configuring your workspace to program Rust in VS Code using Docker Dev Containers.