Git Product home page Git Product logo

rdpmux's Introduction

RDPMux

Table of contents

  1. Introduction
  2. Rationale
  3. Protocol
  4. FAQ

Introduction

RDPMux provides multiplexed RDP servers for virtual machines.

It communicates with VMs via librdpmux, which implements the communication protocol and exposes an API for hypervisors to hook into. More information about the communication protocol is in the PROTOCOL section of this document.

For build and installation instructions, see INSTALL.md.

If you'd like to try RDPMux out, we have a reference implementation of the librdpmux integration for QEMU. Since the librdpmux integration code has not been merged into QEMU upstream (yet!), get our custom fork here.

For usage instructions, see USAGE.md.

Rationale

RDPMux was initially intended as a project to build support for the FreeRDP library into QEMU, in much the same way as SPICE. However, licensing incompatibilities necessitated the decision to split the RDP server functionality into its own project. This also has the advantage of making RDPMux more general than just providing an RDP frontend for QEMU virtual machines.

Protocol

For complete documentation on the wire protocol used to communicate with the hypervisors, see the documentation in librdpmux.

For information on the RDP protocol itself, refer to FreeRDP and Microsoft's own RDP documentation.

FAQ

Why didn't you build this into QEMU the way SPICE does it?

Several reasons. In no particular order:

  • This code links against FreeRDP, which is licensed incompatibly to QEMU. Upstream would never have accepted this code on that basis alone.
  • By shipping this code in two logical pieces, it makes it easier for us to ship updates and fixes in a non-disruptive manner.
  • SPICE actually doesn't build their code directly into QEMU; the SPICE "server" (that interfaces directly with the VM guest) is implemented as a library, and clients are obviously standalone applications.

Why are you using Nanomsg? That project seems to be abandoned!

Well, possibly. The situation with Nanomsg is still up in the air. As it stands, we don't use Nanomsg for very much more than a small full-duplex socket library anyway, so it's a fairly minimal concern to us if it's unsupported.

rdpmux's People

Contributors

sriramanujam avatar

Watchers

James Cloos avatar Chuck Roydhouse avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.