# freerdp/freerdp

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/freerdp-freerdp).**

13,336 stars · 15,359 forks · C · Apache-2.0

## Links

- GitHub: https://github.com/FreeRDP/FreeRDP
- Homepage: http://www.freerdp.com/
- awesome-repositories: https://awesome-repositories.com/repository/freerdp-freerdp.md

## Topics

`android` `c` `freerdp` `library` `rdp` `rdp-client` `rdp-connection` `remote-desktop` `sdl` `wayland-client` `x11`

## Description

FreeRDP is a full software implementation of the Remote Desktop Protocol, providing both client and server capabilities for remote session management. It functions as an RDP client library and a standalone remote desktop client, enabling remote connectivity and interoperability across different operating systems.

The project includes a dedicated network device redirector and an RDP gateway client to handle authentication and proxy routing. It allows developers to integrate remote desktop functionality into third-party software applications via its client library.

The software covers a wide range of capabilities, including remote display rendering with video decoding and image scaling, as well as peripheral redirection for USB devices, printers, smart cards, and local drives. It manages network traffic through proxy server interception and supports identity verification using Kerberos and NTLM credential hashing. Additionally, it provides input handling for multi-touch gestures and manages the synchronization of system clipboards between local and remote systems.

## Tags

### Networking & Communication

- [RDP Server Implementations](https://awesome-repositories.com/f/networking-communication/rdp-server-implementations.md) — Provides a full software implementation of an RDP server to enable remote desktop control. ([source](https://pub.freerdp.com/api/functions_s.html))
- [Remote Desktop Protocols](https://awesome-repositories.com/f/networking-communication/remote-access-control/remote-desktop-protocols.md) — Implements the Remote Desktop Protocol to establish and manage connectivity for controlling computers across a network.
- [Connection Handshake Protocols](https://awesome-repositories.com/f/networking-communication/connection-handshake-protocols.md) — Negotiates configuration, security, and performance parameters during the initial RDP connection handshake. ([source](https://pub.freerdp.com/api/functions_s.html))
- [Hardware Device Redirection](https://awesome-repositories.com/f/networking-communication/hardware-device-redirection.md) — Abstracts local hardware like smart cards and printers to forward raw data streams to a remote host.
- [Proxy Routing](https://awesome-repositories.com/f/networking-communication/proxy-routing.md) — Provides an RDP gateway client that handles authentication and proxy routing through intermediary gateways.
- [Remote Desktop Clients](https://awesome-repositories.com/f/networking-communication/remote-access-control/remote-desktop-clients.md) — Ships a standalone remote desktop client for establishing sessions with audio, video, and peripheral redirection.
- [Remote Desktop Protocol Libraries](https://awesome-repositories.com/f/networking-communication/remote-desktop-protocol-libraries.md) — Provides a comprehensive library for implementing the Remote Desktop Protocol to enable remote connectivity across different operating systems.
- [Remote Desktop Session Management](https://awesome-repositories.com/f/networking-communication/remote-desktop-session-management.md) — Implements the server-side logic to accept and manage incoming remote desktop sessions. ([source](https://pub.freerdp.com/api/functions_r.html))
- [Remote Desktop Streaming](https://awesome-repositories.com/f/networking-communication/remote-desktop-streaming.md) — Captures and plays audio and video streams between local and remote systems during a remote desktop session.
- [Remote Display Protocols](https://awesome-repositories.com/f/networking-communication/remote-display-protocols.md) — Implements the protocol for streaming graphical frames and input events to render the remote desktop locally. ([source](https://pub.freerdp.com/api/functions_c.html))
- [Remote Resource Redirection](https://awesome-repositories.com/f/networking-communication/remote-resource-redirection.md) — Routes local USB devices, printers, smart cards, and drives to a remote session for use by remote applications.
- [Session Establishment](https://awesome-repositories.com/f/networking-communication/session-establishment.md) — Implements the standard protocol for initiating secure communication channels and application-layer RDP sessions. ([source](https://pub.freerdp.com/api/examples.html))
- [Virtual Channel Multiplexing](https://awesome-repositories.com/f/networking-communication/virtual-channel-multiplexing.md) — Streams diverse data types like audio, video, and USB traffic over distinct logical channels within a single RDP connection.
- [Connection Configurations](https://awesome-repositories.com/f/networking-communication/connection-configurations.md) — Provides configurable settings for display, performance, security, and gateway parameters for remote connections. ([source](https://pub.freerdp.com/api/annotated.html))
- [Multimedia Device Redirection](https://awesome-repositories.com/f/networking-communication/multimedia-device-redirection.md) — Forwards local audio input, output, and camera streams to the remote session for application use. ([source](https://pub.freerdp.com/api/functions_s.html))
- [Traffic Routing Proxies](https://awesome-repositories.com/f/networking-communication/network-infrastructure-routing/network-infrastructure-configuration/network-infrastructure/traffic-routing-proxies.md) — Forwards connections through intermediary proxy modules for network inspection or redirection. ([source](https://pub.freerdp.com/api/functions_r.html))
- [RDP Gateway Proxying](https://awesome-repositories.com/f/networking-communication/rdp-gateway-proxying.md) — Routing and intercepting remote desktop traffic through gateway or proxy servers for enhanced security and control.
- [Embedding Frameworks](https://awesome-repositories.com/f/networking-communication/remote-access-control/remote-desktop-clients/embedding-frameworks.md) — Provides a client library that allows developers to embed remote desktop capabilities directly into custom software applications. ([source](https://cdn.jsdelivr.net/gh/freerdp/freerdp@master/README.md))
- [Protocol State Machines](https://awesome-repositories.com/f/networking-communication/tcp-connection-lifecycles/connection-state-management/protocol-state-machines.md) — Tracks session progress through defined states from initial socket connection to authenticated desktop access.
- [Traffic Interception](https://awesome-repositories.com/f/networking-communication/traffic-interception.md) — Intercepts and manages traffic through a proxy server for improved routing and connection control. ([source](https://github.com/FreeRDP/FreeRDP/wiki/Compilation))
- [USB Device Redirection](https://awesome-repositories.com/f/networking-communication/usb-device-redirection.md) — Routes raw USB traffic between local and remote systems to enable hardware access over a network connection. ([source](https://github.com/FreeRDP/FreeRDP/wiki/Compilation))

### Development Tools & Productivity

- [RDP Client Libraries](https://awesome-repositories.com/f/development-tools-productivity/rdp-client-libraries.md) — Provides a comprehensive RDP client library allowing the integration of remote desktop capabilities into custom software.
- [Clipboard Synchronization](https://awesome-repositories.com/f/development-tools-productivity/clipboard-synchronization.md) — Synchronizes clipboard content between local and remote systems to enable copying text and files. ([source](https://pub.freerdp.com/api/files.html))

### Graphics & Multimedia

- [Video Encoding and Decoding](https://awesome-repositories.com/f/graphics-multimedia/video-encoding-and-decoding.md) — Integrates external libraries like FFmpeg and OpenH264 to decode compressed video streams for remote desktop rendering.
- [Video Stream Processing](https://awesome-repositories.com/f/graphics-multimedia/video-stream-processing.md) — Processes compressed video data received during a remote session for local display. ([source](https://pub.freerdp.com/api/examples.html))
- [Remote Audio Streaming](https://awesome-repositories.com/f/graphics-multimedia/multi-source-audio-playback/remote-audio-streaming.md) — Captures local microphone input and plays back remote audio streams in real-time. ([source](https://github.com/FreeRDP/FreeRDP/wiki/Compilation))
- [Remote Desktop Scaling](https://awesome-repositories.com/f/graphics-multimedia/remote-desktop-scaling.md) — Adjusts the resolution of the remote desktop display to support high-density screens and smart-sizing. ([source](https://github.com/FreeRDP/FreeRDP/wiki/Compilation))

### Operating Systems & Systems Programming

- [Network Device Redirectors](https://awesome-repositories.com/f/operating-systems-systems-programming/network-device-redirectors.md) — Provides a dedicated system for routing local USB devices, printers, smart cards, and drives into an RDP session.
- [Remote Drive Redirection](https://awesome-repositories.com/f/operating-systems-systems-programming/remote-drive-redirection.md) — Makes local folders or drives accessible inside the remote session as a network share. ([source](https://pub.freerdp.com/api/files.html))

### Business & Productivity Software

- [Remote Connection Bookmarks](https://awesome-repositories.com/f/business-productivity-software/remote-connection-bookmarks.md) — Provides systems for saving and organizing remote server connection details and history. ([source](https://pub.freerdp.com/api/annotated.html))

### DevOps & Infrastructure

- [RDP Gateway Clients](https://awesome-repositories.com/f/devops-infrastructure/remote-management-gateways/rdp-gateway-clients.md) — Implements a connection manager for authentication and proxy routing through RDP gateways.

### Education & Learning Resources

- [Capability Negotiation Protocols](https://awesome-repositories.com/f/education-learning-resources/educational-resources/systems-applied-computing/infrastructure-architecture/computer-networks/networking-protocols/negotiation-extension-frameworks/capability-negotiation-protocols.md) — Implements a capability negotiation process to align supported protocol versions and extensions between client and server.

### Security & Cryptography

- [Kerberos Authentication](https://awesome-repositories.com/f/security-cryptography/kerberos-authentication.md) — Verifies identity during the remote connection process using secure Kerberos tickets. ([source](https://github.com/FreeRDP/FreeRDP/wiki/Compilation))
- [NTLM Authentication Strategies](https://awesome-repositories.com/f/security-cryptography/ntlm-authentication-strategies.md) — Implements NTLM protocol support for credential hashing and authentication in Windows environments. ([source](https://pub.freerdp.com/api/functions_h.html))

### Software Engineering & Architecture

- [Session Lifecycle Management](https://awesome-repositories.com/f/software-engineering-architecture/event-driven-architectures/session-lifecycle-management.md) — Triggers specific logic in response to session lifecycle events such as channel assignment and disconnects.
- [Session Event Handlers](https://awesome-repositories.com/f/software-engineering-architecture/event-handling/session-event-handlers.md) — Responds to session-level lifecycle and input events such as channel assignment and client readiness. ([source](https://pub.freerdp.com/api/functions_o.html))
