Skip to main content

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.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Built distributions (wheels)

Table of built distributions (wheels) for subspace-tunnel 0.1.2
File Actions
subspace_tunnel-0.1.2-py3-none-win_arm64.whl Python 3 none Windows ARM64 Details for subspace_tunnel-0.1.2-py3-none-win_arm64.whl
subspace_tunnel-0.1.2-py3-none-win_amd64.whl Python 3 none Windows x86-64 Details for subspace_tunnel-0.1.2-py3-none-win_amd64.whl
subspace_tunnel-0.1.2-py3-none-musllinux_1_2_x86_64.whl Python 3 none Linux musl 1.2+ x86-64 Details for subspace_tunnel-0.1.2-py3-none-musllinux_1_2_x86_64.whl
subspace_tunnel-0.1.2-py3-none-musllinux_1_2_aarch64.whl Python 3 none Linux musl 1.2+ ARM64 Details for subspace_tunnel-0.1.2-py3-none-musllinux_1_2_aarch64.whl
subspace_tunnel-0.1.2-py3-none-manylinux_2_17_x86_64.whl Python 3 none Linux glibc 2.17+ x86-64 Details for subspace_tunnel-0.1.2-py3-none-manylinux_2_17_x86_64.whl
subspace_tunnel-0.1.2-py3-none-manylinux_2_17_aarch64.whl Python 3 none Linux glibc 2.17+ ARM64 Details for subspace_tunnel-0.1.2-py3-none-manylinux_2_17_aarch64.whl
subspace_tunnel-0.1.2-py3-none-macosx_12_0_x86_64.whl Python 3 none macOS 12.0+ x86-64 Details for subspace_tunnel-0.1.2-py3-none-macosx_12_0_x86_64.whl
subspace_tunnel-0.1.2-py3-none-macosx_12_0_arm64.whl Python 3 none macOS 12.0+ ARM64 Details for subspace_tunnel-0.1.2-py3-none-macosx_12_0_arm64.whl

Total release size: 56.7 MB

Release files / subspace_tunnel-0.1.2-py3-none-win_arm64.whl

Download URL subspace_tunnel-0.1.2-py3-none-win_arm64.whl
Size 6.9 MB
Tags Python 3 Windows ARM64
SHA-256 checksum
How to use checksums
4252433a43afb24419d6d34a62fd2f6110c99e8d9463acbbed65bbdf6c812429
BLAKE2b-256 checksum
How to use checksums
3ef8efde14a8b5d8d2dbfaa728bd8cc5dc6370b586cecd5b71e10cf681f34e46
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.9.5

Release files / subspace_tunnel-0.1.2-py3-none-win_amd64.whl

Download URL subspace_tunnel-0.1.2-py3-none-win_amd64.whl
Size 7.5 MB
Tags Python 3 Windows x86-64
SHA-256 checksum
How to use checksums
0defe1b80c4ba4788ef6312ef02992875e1ce43d3015345790cee1a59f5abde2
BLAKE2b-256 checksum
How to use checksums
5092fae90dfbce745c4f4a1ec0a85c7168a479de882afce16b6c0e12a2985072
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.9.5

Release files / subspace_tunnel-0.1.2-py3-none-musllinux_1_2_x86_64.whl

Download URL subspace_tunnel-0.1.2-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
776ca2eded34369be1f26472ae850b864f7869574cf080b3ec5b50a9ec310588
BLAKE2b-256 checksum
How to use checksums
08781db4e8209892ff6bac83bbb8dc5025cf5be43fe8a714925c3ea80ff1bfff
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.9.5

Release files / subspace_tunnel-0.1.2-py3-none-musllinux_1_2_aarch64.whl

Download URL subspace_tunnel-0.1.2-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
1cdb226973b2f18db7e97e52a8cd2e65c88834adf592142b661023b97ce17440
BLAKE2b-256 checksum
How to use checksums
4cdba8f577591fc3fa633fd8f5f0c5efeef932ed6ed48f9ecff07252a36d5dc6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.9.5

Release files / subspace_tunnel-0.1.2-py3-none-manylinux_2_17_x86_64.whl

Download URL subspace_tunnel-0.1.2-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
db241404d900ee959ccc2e124e4fda3eb627a8ef2f27b187b28a0460a32de62d
BLAKE2b-256 checksum
How to use checksums
6ffaf86112695beb5c15438f9a08d93d0b92b92607912fdfb572dbc05b515093
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.9.5

Release files / subspace_tunnel-0.1.2-py3-none-manylinux_2_17_aarch64.whl

Download URL subspace_tunnel-0.1.2-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
e238ba68074d302577763a8f3a8432cff78951d70cfe303f5fab74b0294a8771
BLAKE2b-256 checksum
How to use checksums
3fb6e4642725a6624bd9058294c6084ac7a5a75ab00d6a5c66389d0a3b23ca3f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.9.5

Release files / subspace_tunnel-0.1.2-py3-none-macosx_12_0_x86_64.whl

Download URL subspace_tunnel-0.1.2-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
37dfab1d714f2d9792ab9a1feb4cea5570125b9f5a10e37c6dd5b0934dd0bed7
BLAKE2b-256 checksum
How to use checksums
f134c7dad7c88ee37e438f9219691ec89b8c861bfdb1b6f7a75ca7879d690563
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.9.5

Release files / subspace_tunnel-0.1.2-py3-none-macosx_12_0_arm64.whl

Download URL subspace_tunnel-0.1.2-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
3a6191b375c4b637ca644861b4c04aed8b02c295c177938ad9da4fa406d28fc6
BLAKE2b-256 checksum
How to use checksums
ca90efa63303d4ba1d4ee82b36ed08eaeef608b24a4a253621a32f0dbd48de86
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.9.5

Security for subspace-tunnel 0.1.2

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.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page