Categorygithub.com/jsimonetti/go-spice
modulepackage
1.0.0
Repository: https://github.com/jsimonetti/go-spice.git
Documentation: pkg.go.dev

# README

go-spice GoDoc Go Report Card

Package spice attempts to implement a SPICE proxy. It can be used to proxy virt-viewer/remote-viewer traffic to destination qemu instances. Using this proxy over a HTML5 based web viewer has many advantages. One being, the native remote-viewer client can be used through this proxy. This allows (for example) USB redirection, sound playback and recording and clipboard sharing to function.

This package is mostly finished except for the below mentioned todo's. The API should be stable. Vendoring this package is still advised in any case.

TODO:

  • implement proper auth capability handling
  • implement SASL authentication (Not planned, but nice to have)

See example for an example including an Authenticator

# Packages

No description provided by the author
No description provided by the author

# Functions

Adapt creates a Logger backed from a logrus Entry.
New returns a new *Proxy with the options applied.
WithAuthenticator can be provided to implement custom authentication By default, "auth-less" no-op mode is enabled.
WithDialer can be used to provide a custom dialer to reach compute nodes the network is always of type 'tcp' and the computeAddress is the compute node computeAddress that is return by an Authenticator.
WithLogger can be used to provide a custom logger.

# Structs

Proxy is the server object for this spice proxy.

# Interfaces

AuthContext is used to pass either a spiceAuthContext or a saslAuthContext to the Authenticator.
Authenticator is the interface used for creating a tenant authentication It is used by the proxy to do two things: 1) authenticate the user 2) return the compute node to forward the tenant user to When creating your own authentication you should probably use one-time tokens for the tenant authentication.
AuthSASLContext is the interface for SASL authentication.
AuthSpiceContext is the interface for token based (Spice) authentication.
Logger is a logging adapter interface.

# Type aliases

Option is a functional option handler for Server.