<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Antonio Cotos</title>
    <description>The latest articles on DEV Community by Antonio Cotos (@antoniocotos).</description>
    <link>https://dev.to/antoniocotos</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4160673%2Fe2d97e06-d8df-45eb-9c13-dcc5bc63807e.png</url>
      <title>DEV Community: Antonio Cotos</title>
      <link>https://dev.to/antoniocotos</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/antoniocotos"/>
    <language>en</language>
    <item>
      <title>Ping failed. Now what? I taught sping to investigate.</title>
      <dc:creator>Antonio Cotos</dc:creator>
      <pubDate>Mon, 19 Oct 2026 15:49:09 +0000</pubDate>
      <link>https://dev.to/antoniocotos/ping-failed-now-what-i-taught-sping-to-investigate-234k</link>
      <guid>https://dev.to/antoniocotos/ping-failed-now-what-i-taught-sping-to-investigate-234k</guid>
      <description>&lt;p&gt;We've all been there.&lt;/p&gt;

&lt;p&gt;A server suddenly stops responding. Your SSH session freezes. An API becomes unreachable.&lt;/p&gt;

&lt;p&gt;You open a terminal and run the command you've probably typed thousands of times:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;ping example.com
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;And then...&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Request timed out.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Great. Now what?&lt;/p&gt;

&lt;p&gt;Is the server actually down? Is ICMP being blocked? Did your connection drop? Is DNS acting up? Did something change in your network?&lt;/p&gt;

&lt;p&gt;Traditional &lt;code&gt;ping&lt;/code&gt; tells you that packets aren't coming back.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;It doesn't tell you what to investigate next.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;That's the problem I wanted to tackle with the latest release of &lt;a href="https://github.com/LambdaBytes/sping" rel="noopener noreferrer"&gt;sping&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Meet sping 1.7.1
&lt;/h2&gt;

&lt;p&gt;A few weeks ago, I released &lt;strong&gt;sping&lt;/strong&gt;, an open-source, cross-platform network diagnostic tool written in Rust.&lt;/p&gt;

&lt;p&gt;The original idea was simple: build a modern ping that doesn't just display packet statistics, but helps humans understand what's happening with their connections.&lt;/p&gt;

&lt;p&gt;It already supported live latency monitoring, jitter, packet loss, quality scoring, network context, multi-target monitoring, and TCP probes.&lt;/p&gt;

&lt;p&gt;But there was something missing.&lt;/p&gt;

&lt;p&gt;When a connection failed, sping could show you the symptoms.&lt;/p&gt;

&lt;p&gt;I wanted it to go one step further.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What if the tool could automatically investigate what still works when the target stops responding?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;That's what version &lt;strong&gt;1.7.1&lt;/strong&gt; introduces.&lt;/p&gt;

&lt;h2&gt;
  
  
  Introducing &lt;code&gt;--diagnose&lt;/code&gt;
&lt;/h2&gt;

&lt;p&gt;The biggest addition is a new experimental diagnostic mode.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;sping example.com &lt;span class="nt"&gt;--diagnose&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;That's it.&lt;/p&gt;

&lt;p&gt;You start monitoring your target as usual.&lt;/p&gt;

&lt;p&gt;But when it stops responding, sping doesn't just keep displaying timeouts.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;It starts gathering additional evidence.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F8kkwbjjy2p0nkk6nzck7.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F8kkwbjjy2p0nkk6nzck7.gif" alt="sping 1.7.1 — Automatic diagnostics and live network context" width="600" height="338"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;When the target becomes unreachable, sping can automatically perform several additional checks:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;IPv4 / IPv6:&lt;/strong&gt; Can the same hostname be reached using the other address family?&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;TCP connectivity:&lt;/strong&gt; Does anything answer on ports 443 or 80, even when ICMP fails?&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Traceroute:&lt;/strong&gt; How far do packets get before responses disappear?&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Local network context:&lt;/strong&gt; Does the system have a suitable source address for the destination?&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;DNS evidence:&lt;/strong&gt; Did the latest hostname lookup fail or return no addresses for the requested family?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The goal isn't to magically identify every networking problem.&lt;/p&gt;

&lt;p&gt;It's to answer a much more useful question:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;"The target isn't answering. What else can we learn?"&lt;/strong&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  A timeout doesn't always mean a dead server
&lt;/h3&gt;

&lt;p&gt;Imagine you're monitoring a remote server.&lt;/p&gt;

&lt;p&gt;ICMP stops responding, but TCP port 443 still answers.&lt;/p&gt;

&lt;p&gt;That's useful information.&lt;/p&gt;

&lt;p&gt;It doesn't prove that the application is healthy, but it tells you that something along the network path is still responding.&lt;/p&gt;

&lt;p&gt;Or perhaps IPv4 fails while IPv6 works.&lt;/p&gt;

&lt;p&gt;Or the trace reaches several routers before responses disappear.&lt;/p&gt;

&lt;p&gt;Instead of jumping between &lt;code&gt;ping&lt;/code&gt;, &lt;code&gt;traceroute&lt;/code&gt;, and other commands, sping can collect these observations as part of the same monitoring session.&lt;/p&gt;

&lt;p&gt;And because the diagnosis is evidence-based, it reports what was observed rather than pretending to know the exact root cause.&lt;/p&gt;

&lt;h2&gt;
  
  
  Your network changes. Your diagnostics should notice.
&lt;/h2&gt;

&lt;p&gt;Another addition in 1.7.1 is &lt;strong&gt;live network context change detection&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Think about switching from Ethernet to Wi-Fi while monitoring a connection.&lt;/p&gt;

&lt;p&gt;Or a VPN changing your default route.&lt;/p&gt;

&lt;p&gt;These changes can completely alter how traffic reaches a destination.&lt;/p&gt;

&lt;p&gt;sping already tracked network context, but now it can explicitly report when something changes.&lt;/p&gt;

&lt;p&gt;For example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;context changed 00:03 ago: interface eth0 → wlan0
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;It can also track changes in the source address, network prefix, default gateway, and destination classification.&lt;/p&gt;

&lt;p&gt;This is particularly useful when investigating intermittent problems.&lt;/p&gt;

&lt;p&gt;Sometimes the interesting question isn't just whether latency increased.&lt;/p&gt;

&lt;p&gt;It's &lt;strong&gt;what changed immediately before it increased&lt;/strong&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Built for real-world troubleshooting
&lt;/h2&gt;

&lt;p&gt;One thing I wanted to preserve was the simplicity of the original tool.&lt;/p&gt;

&lt;p&gt;You can still run:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;sping 1.1.1.1
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;And get the familiar real-time monitoring interface.&lt;/p&gt;

&lt;p&gt;The new diagnostic mode is entirely optional.&lt;/p&gt;

&lt;p&gt;When enabled, it only starts investigating after the target is considered offline: three consecutive failed probes, or a completed run where no replies were received.&lt;/p&gt;

&lt;p&gt;The additional diagnostic traffic is bounded, with limits on concurrent operations and the number of extra probes.&lt;/p&gt;

&lt;p&gt;The traceroute is also limited in time and hop count.&lt;/p&gt;

&lt;p&gt;I didn't want a failed connection to trigger an uncontrolled burst of network traffic.&lt;/p&gt;

&lt;p&gt;And if you're building monitoring or automation around sping, diagnostic results are also available in its structured JSON output:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;sping example.com &lt;span class="nt"&gt;--diagnose&lt;/span&gt; &lt;span class="nt"&gt;--view&lt;/span&gt; json
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The new &lt;code&gt;active_diagnosis&lt;/code&gt; field exposes the additional observations programmatically.&lt;/p&gt;

&lt;p&gt;A quick note: &lt;code&gt;--diagnose&lt;/code&gt; is still experimental and currently supports one target at a time. Some checks depend on operating-system capabilities and permissions. On macOS, for example, the traceroute component currently supports IPv4 targets only.&lt;/p&gt;

&lt;h2&gt;
  
  
  A few less visible improvements
&lt;/h2&gt;

&lt;p&gt;Version 1.7.1 also includes fixes and improvements across Linux, macOS, and Windows.&lt;/p&gt;

&lt;p&gt;These include more reliable ICMP reply matching on macOS, better handling of interfaces without an address in the requested IP family, and fixes for terminal views and piped output.&lt;/p&gt;

&lt;p&gt;They're not as exciting as a new feature, but they matter when you want a diagnostic tool you can actually rely on.&lt;/p&gt;

&lt;h2&gt;
  
  
  Try sping 1.7.1
&lt;/h2&gt;

&lt;p&gt;sping is free, open source, and available under the MIT license.&lt;/p&gt;

&lt;p&gt;It runs natively on &lt;strong&gt;Linux, macOS, and Windows&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;If you have Rust installed:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;cargo &lt;span class="nb"&gt;install &lt;/span&gt;sping
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;On macOS with Homebrew:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;brew &lt;span class="nb"&gt;install &lt;/span&gt;LambdaBytes/tap/sping
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;On Windows with Scoop:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight powershell"&gt;&lt;code&gt;&lt;span class="n"&gt;scoop&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;bucket&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;add&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;lambdabytes&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;https://github.com/LambdaBytes/scoop-bucket&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="n"&gt;scoop&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;install&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;lambdabytes/sping&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Prebuilt binaries and Debian/Ubuntu packages are also available.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;GitHub:&lt;/strong&gt; &lt;a href="https://github.com/LambdaBytes/sping" rel="noopener noreferrer"&gt;https://github.com/LambdaBytes/sping&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Latest release:&lt;/strong&gt; &lt;a href="https://github.com/LambdaBytes/sping/releases/tag/v1.7.1" rel="noopener noreferrer"&gt;https://github.com/LambdaBytes/sping/releases/tag/v1.7.1&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Full changelog:&lt;/strong&gt; &lt;a href="https://github.com/LambdaBytes/sping/blob/main/CHANGELOG.md" rel="noopener noreferrer"&gt;https://github.com/LambdaBytes/sping/blob/main/CHANGELOG.md&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What's next?
&lt;/h2&gt;

&lt;p&gt;I'm continuing to develop sping with a simple philosophy:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Network diagnostics should help you understand problems, not just display numbers.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;There's still plenty to improve, especially around automatic diagnostics, network context, and making the results easier to interpret.&lt;/p&gt;

&lt;p&gt;And that's where feedback from people actually using the tool becomes incredibly valuable.&lt;/p&gt;

&lt;p&gt;If you work with networks, servers, infrastructure, or simply spend too much time debugging connectivity issues, I'd love to hear what you think.&lt;/p&gt;

&lt;p&gt;What does your troubleshooting workflow look like when ping stops responding?&lt;/p&gt;

&lt;p&gt;What would you want a diagnostic tool to check automatically?&lt;/p&gt;

&lt;p&gt;Feel free to open an issue, share an idea, or contribute on GitHub.&lt;/p&gt;

&lt;p&gt;And if this is your first time hearing about sping, you can also check out my &lt;a href="https://dev.to/antoniocotos/sping-advanced-ping-cli-522c"&gt;original introduction to the project&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Thanks for checking it out!&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href="https://github.com/LambdaBytes/sping" rel="noopener noreferrer"&gt;⭐ sping on GitHub&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Built with Rust. Made for humans.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>rust</category>
      <category>networking</category>
      <category>cli</category>
      <category>opensource</category>
    </item>
    <item>
      <title>Your ping works. Your connection doesn't. Meet sping.</title>
      <dc:creator>Antonio Cotos</dc:creator>
      <pubDate>Sun, 04 Oct 2026 00:36:20 +0000</pubDate>
      <link>https://dev.to/antoniocotos/sping-advanced-ping-cli-522c</link>
      <guid>https://dev.to/antoniocotos/sping-advanced-ping-cli-522c</guid>
      <description>&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fvf79bg9y56ug4jl83ooi.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fvf79bg9y56ug4jl83ooi.gif" alt="GIF EXAMPLE" width="560" height="315"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You're in the middle of debugging a connection problem.&lt;/p&gt;

&lt;p&gt;An SSH session freezes. An API request takes forever. Someone says, &lt;em&gt;"The network looks fine."&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;So you do what we've all done a thousand times:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;
ping 1.1.1.1

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Packets come back. Nice.&lt;/p&gt;

&lt;p&gt;But &lt;strong&gt;what did that actually tell you?&lt;/strong&gt; Is the problem your local network, your connection to the internet, or the specific service you're trying to reach? And what about those occasional latency spikes that disappear before you can show anyone?&lt;/p&gt;

&lt;p&gt;&lt;code&gt;ping&lt;/code&gt; is great at answering a simple question. I wanted a terminal tool that would help answer the &lt;em&gt;next&lt;/em&gt; question.&lt;/p&gt;

&lt;p&gt;That's why I built &lt;strong&gt;sping&lt;/strong&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Ping, with the context you actually need
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;sping&lt;/strong&gt; is a free, open-source network diagnostic CLI written in Rust. It keeps the simplicity of ping, but adds live measurements and a little more awareness of what's happening around your connection.&lt;/p&gt;

&lt;p&gt;Run it like this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;
sping 1.1.1.1

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Instead of scrolling lines of replies, you get a live terminal view with a pulse graph, latency, jitter, packet loss, quality scoring, and trends.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fo24uqgxfikrwk9oihrsn.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fo24uqgxfikrwk9oihrsn.gif" alt="sping 1.6.0 in action: live diagnostics, multi-target monitoring, and TCP probes" width="600" height="338"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The part I find most useful isn't the graph, though. It's &lt;strong&gt;network context&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;While checking your target, sping can also monitor your default gateway and a separate internet reference. That helps you distinguish between situations like:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;The target stops responding, but your gateway and internet reference are reachable.&lt;/strong&gt; Start investigating the destination or the route to it.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Your gateway becomes unreachable.&lt;/strong&gt; Look closer to home: local connectivity, routing, or the gateway itself.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Your gateway responds, but the internet reference doesn't.&lt;/strong&gt; The problem may be upstream, or that reference may be unreachable.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These are clues, not magical root-cause detection. But they're a lot more useful than staring at a timeout and guessing.&lt;/p&gt;

&lt;h2&gt;
  
  
  One command, several destinations
&lt;/h2&gt;

&lt;p&gt;Sometimes you don't want to diagnose one host. You want to see whether several things go wrong &lt;em&gt;at the same time&lt;/em&gt;.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;
sping 192.168.1.1 1.1.1.1 example.com

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;That switches to a multi-target dashboard, so you can compare latency, loss, quality, and trends side by side. It's particularly handy when an issue comes and goes.&lt;/p&gt;

&lt;h2&gt;
  
  
  What if the server doesn't answer ICMP?
&lt;/h2&gt;

&lt;p&gt;A failed ping doesn't necessarily mean a service is down. Some networks simply filter ICMP.&lt;/p&gt;

&lt;p&gt;sping 1.6.0 also supports TCP connection probes:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;
sping example.com &lt;span class="nt"&gt;--tcp&lt;/span&gt; 443

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This measures the TCP connection attempt instead of an ICMP echo. A connection refusal is still a response from the network, &lt;strong&gt;not&lt;/strong&gt; proof that the application is healthy. That distinction matters when you're troubleshooting.&lt;/p&gt;

&lt;h2&gt;
  
  
  Not just something pretty in the terminal
&lt;/h2&gt;

&lt;p&gt;I also wanted sping to be useful in scripts and automation, not only during an interactive debugging session.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;
sping example.com &lt;span class="nt"&gt;--view&lt;/span&gt; json

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Its newline-delimited JSON output exposes measurements and structured diagnostic findings, so you can feed them into other tools without parsing a constantly changing terminal UI.&lt;/p&gt;

&lt;p&gt;sping runs on &lt;strong&gt;Linux, macOS, and Windows&lt;/strong&gt;. It's a native CLI, not a web service you need to deploy, and the project is available under the MIT license.&lt;/p&gt;

&lt;h2&gt;
  
  
  Give it a try
&lt;/h2&gt;

&lt;p&gt;If you have Rust installed:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;
cargo &lt;span class="nb"&gt;install &lt;/span&gt;sping

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;On macOS, you can use Homebrew:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;
brew &lt;span class="nb"&gt;install &lt;/span&gt;LambdaBytes/tap/sping

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Or grab a prebuilt release for your platform from GitHub.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Source code, releases, documentation:&lt;/strong&gt; &lt;a href="https://github.com/LambdaBytes/sping" rel="noopener noreferrer"&gt;github.com/LambdaBytes/sping&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I'm building sping because I think command-line tools can be both lightweight and genuinely helpful when something breaks.&lt;/p&gt;

&lt;p&gt;If you try it, I'd love to know: &lt;strong&gt;what's the first network problem you'd use it to investigate?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Bugs, ideas, and real-world feedback are all welcome on &lt;a href="https://github.com/LambdaBytes/sping/issues" rel="noopener noreferrer"&gt;GitHub Issues&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Website: &lt;a href="//github.com/LambdaBytes/sping"&gt;github.com/LambdaBytes/sping&lt;/a&gt;&lt;br&gt;
Developer: Antonio Cotos&lt;br&gt;
License: MIT License&lt;/p&gt;

&lt;p&gt;#opensource #rust #networking #linux #windows #macos #devops #sysadmin #cli&lt;/p&gt;

</description>
      <category>sysadmin</category>
      <category>cli</category>
      <category>linux</category>
      <category>networking</category>
    </item>
  </channel>
</rss>
