doover-tunnel
The client half of Doover tunnels: the wire protocol a relay session speaks,
the device role (serve a pinned target on the device) and the user role
(forward a localhost port), plus the doover-tunnel binary that the doover
CLI runs as doover tunnel / doover ssh.
Everything that decides who may connect lives on the server side. The relay verifies each leg's bearer token against Doover, a device may only serve its own sessions, a user needs tunnel permission on the device, and a session is pinned to one target. This crate contains no credentials and no authorisation logic; publishing it discloses the message format and nothing else.
Layout
proto/— session record, hello/open/close messages (MessagePack, length-prefixed), relay audit events, WebSocket byte-stream adapter.dial,mux— connect to a relay with a role and token; yamux over it.client— local listener / stdio forwarding with the user's token.device— serve the pinned target with the device agent's token.bin/doover-tunnel.rs(featurecli) — the user binary.
Building
cargo build --release --features cli # the doover-tunnel binary
cargo test --all-features
Packaging
The binary ships to PyPI as the doover-tunnel wheel, built with maturin
from pyproject.toml (bindings = "bin"); doover-cli depends on it and
execs it. Wheels only are published, never an sdist.
Licence
Apache-2.0.
Metadata
Release files for doover-tunnel 0.1.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Built distributions (wheels)
| File | Reset | |||
|---|---|---|---|---|
| doover_tunnel-0.1.1-py3-none-win_amd64.whl | Python 3 | none | Windows x86-64 | Details |
| doover_tunnel-0.1.1-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl | Python 3 | none | Linux glibc 2.17+ x86-64 | Details |
| doover_tunnel-0.1.1-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl | Python 3 | none | Linux glibc 2.17+ ARM64 | Details |
| doover_tunnel-0.1.1-py3-none-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl | Python 3 | none | macOS 11.0+ ARM64, macOS 10.12+ x86-64, macOS 10.12+ universal2 (ARM64, x86-64) | Details |
Total release size: 12.2 MB
Release files / doover_tunnel-0.1.1-py3-none-win_amd64.whl
| Download URL | doover_tunnel-0.1.1-py3-none-win_amd64.whl |
|---|---|
| Size | 2.6 MB |
| Tags | Python 3 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
a1f15efdbc29d76e6461aad8f444c45dca24b844f1f643dfb1b5e91ea6859c48
|
|
BLAKE2b-256 checksum How to use checksums |
1a52aa17cdf91ba79cf6cef7c4ecaf369b804635a301ae9b9b8f9820e4766476
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 22, 2026.
Transparency logRelease files / doover_tunnel-0.1.1-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
| Download URL | doover_tunnel-0.1.1-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
|---|---|
| Size | 2.5 MB |
| Tags | Linux glibc 2.17+ x86-64 Python 3 |
|
SHA-256 checksum How to use checksums |
ad90b21b454742e94a04dae0000142cfb35648a523e4992faf81fd578fdf3f75
|
|
BLAKE2b-256 checksum How to use checksums |
76b645aba0b934bc1e1c408dbf50853fc6b3983317d1821b8085562da494db8b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 22, 2026.
Transparency logRelease files / doover_tunnel-0.1.1-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
| Download URL | doover_tunnel-0.1.1-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl |
|---|---|
| Size | 2.4 MB |
| Tags | Linux glibc 2.17+ ARM64 Python 3 |
|
SHA-256 checksum How to use checksums |
8406f192d21399332cfa53996ebf8fecc9691081318e0138e4c42870457aab73
|
|
BLAKE2b-256 checksum How to use checksums |
ab6dbaa439497e34f837a42df4b19a13381029001344f64805cfec519043287b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 22, 2026.
Transparency logRelease files / doover_tunnel-0.1.1-py3-none-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl
| Download URL | doover_tunnel-0.1.1-py3-none-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl |
|---|---|
| Size | 4.7 MB |
| Tags | Python 3 macOS 10.12+ universal2 (ARM64, x86-64) macOS 10.12+ x86-64 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
e246a88333e8c3372250bb15b69b417dbecee4ecb826d184ae5f4a218be268a4
|
|
BLAKE2b-256 checksum How to use checksums |
5cf03f9d885ec1884ace2ad353195f8444a2ab8ead21b2112d0f357605d65f21
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 22, 2026.
Transparency log