chatmail relay server ping tool
To install use:
uv tool install cmping
To send and receive from a single chatmail relay:
cmping nine.testrun.org # <-- substitute with the domain you want to test
To send from first domain to a second domain and receive from second domain:
cmping nine.testrun.org arcanechat.me
To show help:
cmping -h
Example outputs
Example output for single-domain ping:
$ cmping -c 10 nine.testrun.org
# using accounts_dir at: /home/user/.cache/cmping
PING nine.testrun.org(brrey3kzk@nine.testrun.org) -> nine.testrun.org(uogfnwf3r@nine.testrun.org) count=10
64 bytes ME -> nine.testrun.org -> nine.testrun.org -> ME seq=0 time=490.42ms
64 bytes ME -> nine.testrun.org -> nine.testrun.org -> ME seq=1 time=298.80ms
64 bytes ME -> nine.testrun.org -> nine.testrun.org -> ME seq=2 time=232.80ms
64 bytes ME -> nine.testrun.org -> nine.testrun.org -> ME seq=3 time=245.76ms
64 bytes ME -> nine.testrun.org -> nine.testrun.org -> ME seq=4 time=253.45ms
64 bytes ME -> nine.testrun.org -> nine.testrun.org -> ME seq=5 time=293.69ms
64 bytes ME -> nine.testrun.org -> nine.testrun.org -> ME seq=6 time=238.98ms
64 bytes ME -> nine.testrun.org -> nine.testrun.org -> ME seq=7 time=321.58ms
64 bytes ME -> nine.testrun.org -> nine.testrun.org -> ME seq=8 time=209.66ms
64 bytes ME -> nine.testrun.org -> nine.testrun.org -> ME seq=9 time=233.20ms
--- brrey3kzk@nine.testrun.org -> uogfnwf3r@nine.testrun.org statistics ---
10 transmitted, 10 received, 0.00% loss
rtt min/avg/max/mdev = 209.661/281.833/490.416/81.265 ms
Example output for two-domain ping:
$ cmping -c 10 mailchat.pl mehl.cloud
# using accounts_dir at: /home/user/.cache/cmping
PING mailchat.pl(3yeby7i8m@mailchat.pl) -> mehl.cloud(eeaocuozy@mehl.cloud) count=10
64 bytes ME -> mailchat.pl -> mehl.cloud -> ME seq=0 time=792.29ms
64 bytes ME -> mailchat.pl -> mehl.cloud -> ME seq=1 time=370.50ms
64 bytes ME -> mailchat.pl -> mehl.cloud -> ME seq=2 time=379.01ms
64 bytes ME -> mailchat.pl -> mehl.cloud -> ME seq=3 time=367.38ms
64 bytes ME -> mailchat.pl -> mehl.cloud -> ME seq=4 time=367.56ms
64 bytes ME -> mailchat.pl -> mehl.cloud -> ME seq=5 time=367.98ms
64 bytes ME -> mailchat.pl -> mehl.cloud -> ME seq=6 time=374.11ms
64 bytes ME -> mailchat.pl -> mehl.cloud -> ME seq=7 time=373.28ms
64 bytes ME -> mailchat.pl -> mehl.cloud -> ME seq=8 time=401.45ms
64 bytes ME -> mailchat.pl -> mehl.cloud -> ME seq=9 time=378.89ms
--- 3yeby7i8m@mailchat.pl -> eeaocuozy@mehl.cloud statistics ---
10 transmitted, 10 received, 0.00% loss
rtt min/avg/max/mdev = 367.384/417.246/792.292/132.163 ms
Developing / Releasing cmping
-
clone the git repository at https://github.com/chatmail/cmping
-
install 'cmping' in editing mode:
uv pip install -e . -
edit cmping.py and test, finally commit your changes
CI checks (ruff lint/format, packaging) come from the shared
chatmail/workflows
repository; run them locally with uvx ruff check . and
uvx ruff format --check .
To release, update CHANGELOG.md, then create and push a version tag:
git tag -a v0.18.0 -m "Release v0.18.0"
git push origin main v0.18.0
The release.yml workflow then builds and publishes to PyPI via trusted publishing (OIDC); no local twine or PyPI token is involved.
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file cmping-0.18.0.tar.gz.
File metadata
- Download URL: cmping-0.18.0.tar.gz
- Upload date:
- Size: 15.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/6.1.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9612fe6b61db198cc74194e99549a9b63e852432ec528f4b09a17a609e5db631
|
|
| MD5 |
a268ae3b34766c3c8d2ef502facca2d9
|
|
| BLAKE2b-256 |
fa6c876b6c49fd882cc8010407bfe33e82cb11f3cf192262aa4165860ac092fd
|
Provenance
The following attestation bundles were made for cmping-0.18.0.tar.gz:
Publisher:
release.yml on chatmail/cmping
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
cmping-0.18.0.tar.gz -
Subject digest:
9612fe6b61db198cc74194e99549a9b63e852432ec528f4b09a17a609e5db631 - Sigstore transparency entry: 2261468741
- Sigstore integration time:
-
Permalink:
chatmail/cmping@e41e21c729d45f893a93bdbc9933fe67881c9590 -
Branch / Tag:
refs/tags/v0.18.0 - Owner: https://github.com/chatmail
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@e41e21c729d45f893a93bdbc9933fe67881c9590 -
Trigger Event:
push
-
Statement type:
File details
Details for the file cmping-0.18.0-py3-none-any.whl.
File metadata
- Download URL: cmping-0.18.0-py3-none-any.whl
- Upload date:
- Size: 15.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/6.1.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5e70b19f7cb83a4f20bafd6ef1b9006afc1e8b0332f421c1c12e4c1025f7cda8
|
|
| MD5 |
8829d4afd8bfbd4422277d210d3bf463
|
|
| BLAKE2b-256 |
cdf6212e8cdedea564ada2ba685728bfae9701b1a8248681c554b32524cadc36
|
Provenance
The following attestation bundles were made for cmping-0.18.0-py3-none-any.whl:
Publisher:
release.yml on chatmail/cmping
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
cmping-0.18.0-py3-none-any.whl -
Subject digest:
5e70b19f7cb83a4f20bafd6ef1b9006afc1e8b0332f421c1c12e4c1025f7cda8 - Sigstore transparency entry: 2261468820
- Sigstore integration time:
-
Permalink:
chatmail/cmping@e41e21c729d45f893a93bdbc9933fe67881c9590 -
Branch / Tag:
refs/tags/v0.18.0 - Owner: https://github.com/chatmail
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@e41e21c729d45f893a93bdbc9933fe67881c9590 -
Trigger Event:
push
-
Statement type: