Skip to content

Commit aacc527

Browse files
committed
Add road map and update README
1 parent 145084e commit aacc527

File tree

2 files changed

+23
-5
lines changed

2 files changed

+23
-5
lines changed

README.md

Lines changed: 22 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,13 @@
11
# Go WebSockify
2-
> RFC 6455 compliant TCP and Unix socket proxy to WebSockets.
2+
> RFC 6455 compliant TCP to WebSocket proxy.
33
4-
Go WebSockify is a pure Go implementation of [novnc/websockify](https://github.com/novnc/websockify) TCP/Unix to WebSocket proxy with improved connection handling. Runs on Linux, Windows and MacOS.
4+
Go WebSockify is a pure Go implementation of [novnc/websockify](https://github.com/novnc/websockify) TCP to WebSocket proxy with improved connection handling. Runs on Linux, Windows and MacOS.
55

66
## Table of Contents
77
- [Installation](#installation)
88
- [Build from source](#build-from-source)
9+
- [Features](#features)
10+
- [Use Cases](#use-cases)
911
- [Usage](#usage)
1012
- [Development](#development)
1113
- [Dependencies](#dependencies)
@@ -14,6 +16,7 @@ Go WebSockify is a pure Go implementation of [novnc/websockify](https://github.c
1416
- [Docker](#docker)
1517
- [Screenshots](#screenshots)
1618
- [Prometheus Metrics](#prometheus-metrics)
19+
- [Roadmap](#roadmap)
1720
- [Contributing](#contributing)
1821
- [License](#license)
1922

@@ -26,10 +29,18 @@ $ cd go-websockify
2629
$ make
2730
```
2831

32+
## Features
33+
- Runs in user space.
34+
- Proxy any TCP connection to a WebSocket connection.
35+
- `go-websockify` can be ran as a daemon by passing the command line flag `-D` or `--daemon` to run in the background.
36+
37+
## Use Cases
38+
The most common use case for `go-websockify` is alongside [novnc](https://github.com/novnc) to enable fast virtual desktop experiences in the browser.
39+
2940
## Usage
3041
```shell
3142
$ go-websockify --help
32-
Starts a TCP/Unix to WebSocket proxy.
43+
Starts a TCP to WebSocket proxy.
3344

3445
Usage:
3546
go-websockify [flags]
@@ -40,7 +51,7 @@ Flags:
4051
-D, --daemon run Go WebSockify as daemon
4152
--echo sidecar echo server
4253
-h, --help help for go-websockify
43-
--remote-addr string remote address (default "127.0.0.1:3000")
54+
--remote-addr string remote address (default "127.0.0.1:1984")
4455
-v, --version print Go WebSockify version
4556
```
4657

@@ -104,6 +115,13 @@ Go WebSockify exports the following Prometheus metrics at `/metrics`:
104115
- go_websockify_websocket_connections_active
105116
- go_websockify_tcp_connections_active
106117

118+
## Roadmap
119+
- [ ] Support TLS on WebSocket connections.
120+
- [ ] Support authenticating WebSocket connections through a plugin system (https://github.com/traefik/yaegi).
121+
- [ ] Support for proxying UNIX sockets to WebSockets.
122+
- [ ] Support backend TCP connection reuse.
123+
- [ ] Wrapping any program with the `LD_PRELOAD` trick to catch `bind()` system calls. See: https://jvns.ca/blog/2014/11/27/ld-preload-is-super-fun-and-easy/.
124+
107125
## Contributing
108126
Both pull requests and issues are welcome on [GitHub](https://github.com/msquee/go-websockify). No set rules for contributing, just keep it clean.
109127

main.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ func main() {
4646
var rootCmd = &cobra.Command{
4747
TraverseChildren: true,
4848
Use: "go-websockify",
49-
Long: `Starts a TCP/Unix to WebSocket proxy.`,
49+
Long: `Starts a TCP to WebSocket proxy.`,
5050
Run: func(cmd *cobra.Command, args []string) {
5151
if showVersion {
5252
fmt.Println(fmt.Sprintf("Go WebSockify version %s built on %s", versionString, buildTime))

0 commit comments

Comments
 (0)