Contents

Styleguide

Every building block available to documentation pages, in one place.

This page exists so authors (human or agent) can see every component in context. It doubles as the visual QA page — if something looks wrong here, it looks wrong everywhere.

Prose

Regular paragraphs are muted. Strong text pops to primary. Inline code like splithttp.DialerClient gets a chip. Links to the source are underlined.

  • Unordered lists use blook’s dot markers
  • Second item, with inline code
  • Third item
  1. Ordered lists get bold counters
  2. And they nest properly

Blockquotes render as quiet surface cards — good for quoting comments straight from the Go source.

Callouts

Use callouts for exactly the things this site exists for — the non-obvious behavior you only learn by reading the source:

Do / Don’t

Pages follow the Refactoring UI pattern: a principle in one sentence, then a concrete example. For configuration advice, that example is a Do/Don’t pair:

Don't

Enable mux for everything

Mux multiplexes streams over one tunnel — but it also caps concurrency and breaks UDP-over-TCP performance for games and calls.

Do

Enable mux for browsing only

Route latency-sensitive traffic (games, VoIP) through a separate outbound with "concurrency": -1 to bypass mux entirely.

Source references

Tag sections with the files they were derived from:

transport/internet/splithttp/dialer.go transport/internet/splithttp/upload_queue.go

Code

Go, with the poimandres theme on a surface card:

// DialerClient reuses one HTTP client per destination — uploads are
// individual POSTs, the download is one long-lived GET.
func (c *DefaultDialerClient) OpenUpload(ctx context.Context, baseURL string) io.WriteCloser {
	reader, writer := io.Pipe()
	req, _ := http.NewRequestWithContext(ctx, "POST", baseURL, reader)
	go c.client.Do(req)
	return writer
}

Config JSON:

{
	"network": "xhttp",
	"xhttpSettings": {
		"mode": "packet-up",
		"path": "/assets"
	}
}

Diagrams

Svelte Flow diagrams with blook-styled nodes. Node kinds: client (blue), server (lime), net (dashed), process (neutral), danger (red). Edges can be labeled and animated.

SplitHTTP: uplink and downlink travel as separate, CDN-friendly HTTP requests

Tables

TransportLooks likeSurvives CDNExtra RTT
TCP (RAW)Raw TLS streamNo0
WebSocketHTTP/1.1 upgradeYes1
SplitHTTPOrdinary requestsYes0–1
gRPCHTTP/2 streamPartially1