Help us shape the future of Go! Take the 2026 Go Developer Survey

cliwisp

package
v1.3.100 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 9, 2026 License: AGPL-3.0 Imports: 12 Imported by: 0

Documentation

Overview

Package cliwisp cmd/skywire-cli/commands/wisp/client.go c4-vis-cli

`skywire cli wisp client` — the consuming end: dial someone else's Wisp backend and present it locally as a SOCKS5 proxy, so anything that speaks SOCKS5 (a browser, curl, a whole network namespace) egresses through it.

--proxy is what makes this interesting on a mesh. The WebSocket handshake itself is dialed through a SOCKS5 proxy, so pointing --proxy at the local skysocks-client puts the Wisp session on a route to an exit: the backend is reached over skywire, and the backend's own egress is wherever it chose. Neither end has to be on the clearnet for the two to meet.

Package cliwisp cmd/skywire-cli/commands/wisp/serve.go c4-vis-cli

`skywire cli wisp serve` — provide a Wisp backend, carrying every stream it is asked for over skywire.

LinuxOnTab (linuxontab.com) reads its backend from a query parameter, so no change to the page is needed:

skywire cli wisp serve
# then open https://next.linuxontab.com/?wisp=ws://127.0.0.1:6001/wisp

Package cliwisp cmd/skywire-cli/commands/wisp/serve_http.go c4-vis-cli

Serving Wisp the way the protocol defines it: an HTTP listener that upgrades to a WebSocket. Its js twin serves the same sessions over the page's virtual loopback instead, because in a tab neither half of this file can exist — there is no HTTP listener and websocket.Accept is //go:build !js.

Package cliwisp cmd/skywire-cli/commands/wisp/wisp.go c4-vis-cli

`skywire cli wisp` — both ends of the Wisp protocol.

Wisp multiplexes TCP and UDP sockets over one WebSocket. Browser-based Linux emulators use it as the egress for a guest NIC: the page runs the guest's TCP/IP stack itself and asks its Wisp backend to open connections by name.

serve   provide a Wisp backend, carrying its streams over skywire
client  consume someone else's Wisp backend, as a local SOCKS5 proxy

The two compose: `client --proxy` reaches a remote backend over a skywire route, so a Wisp endpoint published by one visor is usable from another without either being on the clearnet.

Index

Constants

This section is empty.

Variables

View Source
var RootCmd = &cobra.Command{
	Use:   "wisp",
	Short: "Serve or consume the Wisp protocol over skywire",
	Long: `Both ends of the Wisp protocol.

Wisp multiplexes many TCP and UDP sockets over a single WebSocket. It is what
browser Linux emulators use to give a guest kernel a network: the page runs the
guest's TCP/IP stack and asks its backend to open connections by name.

  serve    provide a Wisp backend, carrying its streams over skywire
  client   consume someone else's Wisp backend, as a local SOCKS5 proxy

The two compose. A visor serving wisp on a port it forwards over the mesh is
reachable by another visor's client via --proxy, so the WebSocket itself rides a
skywire route rather than the clearnet.`,
}

RootCmd is the `wisp` subcommand.

Functions

This section is empty.

Types

This section is empty.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL