Skip to content

gemone/bring

Repository files navigation

Bring

Go client library for Apache Guacamole Protocol.

Fork from deluan/bring

Feature

TODO

TODO

  • Improve performance
    • Optimize communication process
    • Import log Library uber-go/zap
  • Perfect realization
    • Websocket channel
    • Perfect stream processing
  • Newer
    • Close to new standards
    • Use new treatment scheme
    • More specific documentation

Quick start (tl;dr)

  1. Install the library in your project: go get github.com/gemone/bring
  2. Create a Client with the NewClient() function. This creates a session with the specified guacd server
  3. Start the client with go client.Start()
  4. Get screen updates with client.Screen()
  5. Send keystrokes with client.SendKey()
  6. Send mouse updates with client.SendMouse()

See the sample app for a working example

Documentation

The API is provided by the Client struct. The documentation is a work in progress, but the API is very simple and you can take a look at all features available in the sample app provided. Here are the steps to run the app:

  1. You'll need a working guacd server in your machine. The easiest way is using docker and docker-compose. Just call docker-compose up -d in the root of this project. It starts the guacd server and a sample headless linux with a VNC server
  2. Run the sample app with make run. It will connect to the linux container started by docker.

Take a look at the Makefile to learn how to run it in different scenarios.

Why?

Apache Guacamole was created with the goal of making a dedicated client unnecessary. So why create a client?!

The idea is that if you need to control a remote machine from your Go code, you can leverage the Guacamole protocol and the guacd server as a bridge. This way you can use any protocol supported by Guacamole (currently RDP and VNC, with X11 coming in the future) to do screen capture and remote control of networked servers/desktop machines from within your Go app.

It seems that the project deluan/bring is no longer maintained and there is no relevant plan. Therefore, try to improve the protocol to expand its use.

References

About

Remote control library for the Apache Guacamole protocol (RDP/VNC) (fork https://github.com/deluan/bring)

Resources

License

Code of conduct

Stars

Watchers

Forks

Packages

No packages published