subspace
Expose a local HTTP service through a public relay server, without touching firewall or NAT rules.
The machine with the local service dials out to the server; requesters reach it by passing its id as a bearer token.
requester --HTTP--> subspace server (public) <--websocket-- subspace client --> localhost:<port>
Install
uv tool install subspace-tunnel
or run without installing: uvx subspace-tunnel ...
Server
# server.yaml
listen: ":8080"
client_tokens:
- "some-long-random-token"
subspace server --config server.yaml
TLS is out of scope, put the server behind Caddy/nginx/etc.
Client
subspace client --server https://relay.example.com --token some-long-random-token --id some-long-random-id --port 8000
--upstream-authorization "Bearer <token>" sets the Authorization header sent to the local port. Without it, the header is stripped.
Only one client can hold an id at a time. The id is freed when the client disconnects, or ~20s after it dies.
Requester
curl https://relay.example.com/ -H "Authorization: Bearer some-long-random-id"
The id is effectively an api key: anyone who knows it can use the exposed service.
Metadata
Release files for subspace-tunnel 0.1.3
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Built distributions (wheels)
Total release size: 56.7 MB
Release files / subspace_tunnel-0.1.3-py3-none-win_arm64.whl
| Download URL | subspace_tunnel-0.1.3-py3-none-win_arm64.whl |
|---|---|
| Size | 6.9 MB |
| Tags | Python 3 Windows ARM64 |
|
SHA-256 checksum How to use checksums |
41649b65190a570565074d6ba524822b1e6b41693fc09629e1ad483a25a386c9
|
|
BLAKE2b-256 checksum How to use checksums |
e5a12393e3a94c51882d40249493cbf2b822e6d373c75f82079d2594ab2a4d2a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.9.5
|
Release files / subspace_tunnel-0.1.3-py3-none-win_amd64.whl
| Download URL | subspace_tunnel-0.1.3-py3-none-win_amd64.whl |
|---|---|
| Size | 7.5 MB |
| Tags | Python 3 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
e10a1e7d80686c6721bd7e7e78e605fed259bc7341082377463943b286aef669
|
|
BLAKE2b-256 checksum How to use checksums |
28329bd7de78a960da992cb032aea70d2b31f70650365445643e3823366e22fe
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.9.5
|
Release files / subspace_tunnel-0.1.3-py3-none-musllinux_1_2_x86_64.whl
| Download URL | subspace_tunnel-0.1.3-py3-none-musllinux_1_2_x86_64.whl |
|---|---|
| Size | 7.3 MB |
| Tags | Linux musl 1.2+ x86-64 Python 3 |
|
SHA-256 checksum How to use checksums |
c4a27b91232e7592b0d5e2b71cefd7bd22d0642adbed41c21660aeb1b0dfa6e7
|
|
BLAKE2b-256 checksum How to use checksums |
b84f70882240bbf77e271a24d3ad904fbaf52479a3111515359e22db236f6701
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.9.5
|
Release files / subspace_tunnel-0.1.3-py3-none-musllinux_1_2_aarch64.whl
| Download URL | subspace_tunnel-0.1.3-py3-none-musllinux_1_2_aarch64.whl |
|---|---|
| Size | 6.8 MB |
| Tags | Linux musl 1.2+ ARM64 Python 3 |
|
SHA-256 checksum How to use checksums |
11e48db3c7771e979d0625ca2be40c0ad1a536982f73124b12749d8405c0e5de
|
|
BLAKE2b-256 checksum How to use checksums |
19f1b3a65b287c706cf5a1ec75618e08c835fca8438f184aa928bb375d426dec
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.9.5
|
Release files / subspace_tunnel-0.1.3-py3-none-manylinux_2_17_x86_64.whl
| Download URL | subspace_tunnel-0.1.3-py3-none-manylinux_2_17_x86_64.whl |
|---|---|
| Size | 7.3 MB |
| Tags | Linux glibc 2.17+ x86-64 Python 3 |
|
SHA-256 checksum How to use checksums |
aa2a2b8e328c4aa582cc8685bdb9e4490470a77180b9e9e1c8548d10349c6261
|
|
BLAKE2b-256 checksum How to use checksums |
f1eed4cf49693832b0ece91c7357bc7ffa6233907fe65880bdf7e6cb6f55d3b0
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.9.5
|
Release files / subspace_tunnel-0.1.3-py3-none-manylinux_2_17_aarch64.whl
| Download URL | subspace_tunnel-0.1.3-py3-none-manylinux_2_17_aarch64.whl |
|---|---|
| Size | 6.8 MB |
| Tags | Linux glibc 2.17+ ARM64 Python 3 |
|
SHA-256 checksum How to use checksums |
2aa9480437cc56293c3e82d5c90abb7e8ed538210f951dd5d83e04ee83a8567f
|
|
BLAKE2b-256 checksum How to use checksums |
27cfb0af8dbd1f7a435795f50fcdfd2ef5e938958e0ed2fc815fc9ea22f92cf6
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.9.5
|
Release files / subspace_tunnel-0.1.3-py3-none-macosx_12_0_x86_64.whl
| Download URL | subspace_tunnel-0.1.3-py3-none-macosx_12_0_x86_64.whl |
|---|---|
| Size | 7.4 MB |
| Tags | Python 3 macOS 12.0+ x86-64 |
|
SHA-256 checksum How to use checksums |
5eee2182d3b7caa1112ce15191ac8c2b4ed292132a458e7c68730a395f1bb36b
|
|
BLAKE2b-256 checksum How to use checksums |
34b2c5b27490085d9c2075d9c5c648395f5c362dab4be73e92777b39544444ac
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.9.5
|
Release files / subspace_tunnel-0.1.3-py3-none-macosx_12_0_arm64.whl
| Download URL | subspace_tunnel-0.1.3-py3-none-macosx_12_0_arm64.whl |
|---|---|
| Size | 6.9 MB |
| Tags | Python 3 macOS 12.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
298deea654ce5453875355150a7245b9e7ef2924d4e1b75489c19c76aab1f04f
|
|
BLAKE2b-256 checksum How to use checksums |
33dc6b9061077398e328c72fca70db3a30378c0ceb0810a39280cb598fdb733b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.9.5
|
Security for subspace-tunnel 0.1.3
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.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.