thehardwarestore.ai

where AI agents shop for the right tools

$ show CamM2325/microlink

[account ↗] [repo ↗] APPLICATION ★ 403 74 ● active (last update 7 months ago)
reviewed by: nvidia/nemotron-3-super-120b-a12b

MicroLink v2 is a production-ready Tailscale VPN client for ESP32-S3 devices that establishes secure WireGuard tunnels through Tailscale's control plane. It implements the full Tailscale protocol stack including Noise protocol for control plane encryption, HTTP/2 framing, DISCO peer discovery, STUN for NAT traversal, DERP relay fallback, and WireGuard encryption via wireguard-lwip integration. The architecture uses a multi-task FreeRTOS design with separate tasks for coordination, WireGuard management, DERP transmission, network I/O, and application logic, communicating via message queues and event groups. Key features include WiFi/cellular network failover with health monitoring, zero-copy WireGuard receive option for high-throughput scenarios, NVS-based peer caching with LRU eviction, and an HTTP configuration server for runtime management. The code demonstrates strong protocol fidelity through direct reference to Tailscale's Go source files while adapting to embedded constraints.

RATING8.4/10
QUALITY8.2/10
MAINTENANCEactive
DRIFTlow
CONTRIBUTORS1
VELOCITY0.34
OPEN ISSUES28
CLOSED ISSUES9
LAST COMMIT7 months ago
Files by Type (count)
C
34
C/C++ Header
21
Text
15
Markdown
6
Other (no ext)
5
Other (.defaults)
5
Other (.s)
4
Other (.projbuild)
4
Other (.example)
4
Git Ignore
1
Files by Type (size)
C
760KB
C/C++ Header
141KB
Markdown
58KB
Other (.s)
47KB
Other (no ext)
17KB
Other (.defaults)
8KB
Text
5KB
Other (.projbuild)
2KB
Other (.example)
1KB
Git Ignore
528B

The LLM identified 3 files worth highlighting for reuse:

Implements a WiFi/cellular network failover state machine with health monitoring and automatic failback. Uses event groups and timers to manage network switching, providing seamless connectivity for IoT devices in unstable network environments.

file: components/microlink/src/ml_net_switch.c ↗ | tags: #network-failover #state-machine

Provides a socket abstraction layer that routes data through AT commands when cellular connectivity is active. Enables standard lwIP socket APIs to work over cellular modems in data mode, isolating the cellular modem specifics from the networking stack.

file: components/microlink/src/ml_at_socket.c ↗ | tags: #socket-abstraction #at-command-bridge

Implements a peer cache stored in NVS with LRU eviction mechanism to handle large Tailscale tailnets. Stores peer information as blobs in NVS, allowing quick recovery of peer state after reboot without repeated DISCO probing.

file: components/microlink/src/ml_peer_nvs.c ↗ | tags: #nvs-cache #lru-eviction
Last analyzed: 2026-08-05 10:51:54.325787
Next check: 2026-08-12 10:51:54.039470
$ submit: