ycd/dstp

🧪 Run common networking tests against any site.

Go

1,296

120 commits

updated Sep 9, 2025

See the code

README

dstp

dstp, run common networking tests against your site.

dstp gif


Usage

Usage: dstp [OPTIONS] [ARGS]
Options:
        -a, --addr   <string>  The URL or the IP address to run tests against      [REQUIRED]
        -o, --out    <string>  The type of the output, either json or plaintext    [Default: plaintext] 
        -p           <int>     Number of ping packets                              [Default: 3]
        -t           <int>     Give up on ping after this many seconds             [Default: 2s per ping packet]
        --port       <string>  Port for testing TLS and HTTPS connectivity         [Default: 443]
        --dns        <string>  Custom DNS server to use for DNS resolution         [No default]
        -h, --help             Show this message and exit.

Motivation

A comment on lobste.rs, in a thread about DNS gave a great idea and thought a robust tool like that might come in handy!

Installation

Packages

Homebrew

brew install dstp

Go Install

go install github.com/ycd/dstp/cmd/dstp@latest

NixOS/nix

You can install dstp using one of these methods:

  1. Using nix-shell or nix shell (recommended for trying it out):
nix shell nixpkgs#dstp
  1. Adding to your NixOS configuration (system-wide installation):
# configuration.nix or home-manager configuration
{
  # ...
  environment.systemPackages = with pkgs; [
    dstp
  ];
}
  1. Or using nix profile (for individual user installation):
nix profile install nixpkgs#dstp

Arch Linux

git clone https://aur.archlinux.org/dstp.git
cd dstp
makepkg -sri

Downloads

Binary downloads of example are available from the releases section on GitHub for 64-bit Windows, macOS, and Linux targets. They contain the compiled executable.

Installation from source

  1. Verify that you have Go 1.17+ installed (The source code uses ( //go:build ) conditional compilation directives that is introduced in Go 1.17.)

    $ go version
    

    If go is not installed, follow instructions on the Go website.

  2. Clone this repository

    $ git clone https://github.com/ycd/dstp 
    $ cd dstp
    
  3. Build and install

    Unix/Linux

    # May require you to use sudo
    $ go build cmd/dstp/dstp.go
    $ cp dstp /usr/local/bin/dstp
    

    Mac/BSD

    # May require you to use sudo
    $ make
    $ cp dstp /usr/local/bin/dstp
    
  4. Verify installation

    $ dstp -h 
    
    Usage: dstp [OPTIONS] [ARGS]
    Options:
          -a, --addr   <string>  The URL or the IP address to run tests against      [REQUIRED]
          -o, --out    <string>  The type of the output, either json or plaintext    [Default: plaintext]
          -p           <int>     Number of ping packets                              [Default: 3]
          -t           <int>     Give up on ping after this many seconds             [Default: 2s per ping packet]
          --port       <string>  Port for testing TLS and HTTPS connectivity         [Default: 443]
          -h, --help             Show this message and exit.
    

Appendix

The command dstp may collide with docker stopcommand if you are using the docker plugin with oh-my-zsh.

To fix this, you can add the following command at the end of your .zshrc file:

unalias dstp

Contributing

All kinds of Pull Requests and Feature Requests are welcomed!

Licence

dstp's source code is licenced under the MIT License.

dns
golang
networking
network-monitoring
ping

ycd/dstp

🧪 Run common networking tests against any site.

Go

1,296

120 commits

updated Sep 9, 2025

See the code

README

dstp

dstp, run common networking tests against your site.

dstp gif


Usage

Usage: dstp [OPTIONS] [ARGS]
Options:
        -a, --addr   <string>  The URL or the IP address to run tests against      [REQUIRED]
        -o, --out    <string>  The type of the output, either json or plaintext    [Default: plaintext] 
        -p           <int>     Number of ping packets                              [Default: 3]
        -t           <int>     Give up on ping after this many seconds             [Default: 2s per ping packet]
        --port       <string>  Port for testing TLS and HTTPS connectivity         [Default: 443]
        --dns        <string>  Custom DNS server to use for DNS resolution         [No default]
        -h, --help             Show this message and exit.

Motivation

A comment on lobste.rs, in a thread about DNS gave a great idea and thought a robust tool like that might come in handy!

Installation

Packages

Homebrew

brew install dstp

Go Install

go install github.com/ycd/dstp/cmd/dstp@latest

NixOS/nix

You can install dstp using one of these methods:

  1. Using nix-shell or nix shell (recommended for trying it out):
nix shell nixpkgs#dstp
  1. Adding to your NixOS configuration (system-wide installation):
# configuration.nix or home-manager configuration
{
  # ...
  environment.systemPackages = with pkgs; [
    dstp
  ];
}
  1. Or using nix profile (for individual user installation):
nix profile install nixpkgs#dstp

Arch Linux

git clone https://aur.archlinux.org/dstp.git
cd dstp
makepkg -sri

Downloads

Binary downloads of example are available from the releases section on GitHub for 64-bit Windows, macOS, and Linux targets. They contain the compiled executable.

Installation from source

  1. Verify that you have Go 1.17+ installed (The source code uses ( //go:build ) conditional compilation directives that is introduced in Go 1.17.)

    $ go version
    

    If go is not installed, follow instructions on the Go website.

  2. Clone this repository

    $ git clone https://github.com/ycd/dstp 
    $ cd dstp
    
  3. Build and install

    Unix/Linux

    # May require you to use sudo
    $ go build cmd/dstp/dstp.go
    $ cp dstp /usr/local/bin/dstp
    

    Mac/BSD

    # May require you to use sudo
    $ make
    $ cp dstp /usr/local/bin/dstp
    
  4. Verify installation

    $ dstp -h 
    
    Usage: dstp [OPTIONS] [ARGS]
    Options:
          -a, --addr   <string>  The URL or the IP address to run tests against      [REQUIRED]
          -o, --out    <string>  The type of the output, either json or plaintext    [Default: plaintext]
          -p           <int>     Number of ping packets                              [Default: 3]
          -t           <int>     Give up on ping after this many seconds             [Default: 2s per ping packet]
          --port       <string>  Port for testing TLS and HTTPS connectivity         [Default: 443]
          -h, --help             Show this message and exit.
    

Appendix

The command dstp may collide with docker stopcommand if you are using the docker plugin with oh-my-zsh.

To fix this, you can add the following command at the end of your .zshrc file:

unalias dstp

Contributing

All kinds of Pull Requests and Feature Requests are welcomed!

Licence

dstp's source code is licenced under the MIT License.

dns
golang
networking
network-monitoring
ping

Project health

Latest release

v0.4.23 · Jan 10, 2025

Releases this year

0

Significant stargazers

Aliaksandr Belik

162 followers · starred Jan 2025

Ivan Trubach

58 followers · starred Nov 2021

Jonatan Ivanov

443 followers · starred Nov 2021

Kenneth Geisshirt

167 followers · starred Sep 2025