IronRDP: a Rust implementation of Microsoft's RDP protocol

This page summarizes the projects mentioned and recommended in the original post on news.ycombinator.com

CodeRabbit: AI Code Reviews for Developers
Revolutionize your code reviews with AI. CodeRabbit offers PR summaries, code walkthroughs, 1-click suggestions, and AST-based analysis. Boost productivity and code quality across all major languages with each PR.
coderabbit.ai
featured
InfluxDB high-performance time series database
Collect, organize, and act on massive volumes of high-resolution data to power real-time intelligent systems.
influxdata.com
featured
  1. IronRDP

    Rust implementation of the Microsoft Remote Desktop Protocol (RDP)

    The demo in the README is pretty impressive for an independent implementation, but I also noticed the repo includes server code (https://github.com/Devolutions/IronRDP/tree/master/crates/ir...). I wonder if tools like Proxmox could use this as a more efficient alternative to VNC (which is slow and weird) or SPICE (for which there are very few non-Linux tools).

  2. CodeRabbit

    CodeRabbit: AI Code Reviews for Developers. Revolutionize your code reviews with AI. CodeRabbit offers PR summaries, code walkthroughs, 1-click suggestions, and AST-based analysis. Boost productivity and code quality across all major languages with each PR.

    CodeRabbit logo
  3. devolutions-gateway

    A blazing fast relay server adaptable to different protocols and desired levels of traffic inspection.

    RDP-over-SSH will break Kerberos authentication for two reasons: 1) you'll point the RDP client to localhost and a random port and 2) you won't get a KDC line-of-sight. The irony is Microsoft has demoed this with SSH over Azure Arc, which can only result in an NTLM downgrade.

    IronRDP is designed to work with Devolutions Gateway (https://github.com/Devolutions/devolutions-gateway) for just-in-time RDP connections made from the web or through the desktop client. Devolutions Gateway also supports just-in-time KDC proxying alongside the main RDP connection, making Kerberos possible.

    You can install the free standalone web access package of Devolutions Gateway to try it out, it will give you a simple web interface where you can enter the hostname, username and password.

    But if you really want the simplest solution, it's with the rest of the Devolutions stack with Remote Desktop Manager and Devolutions Server. In the end, you'll be able to make RDP connections from RDM or through the web with just a double-click, and it'll automatically generate short-lived tokens and make RDP + Kerberos work seamlessly: https://devolutions.net/gateway/

  4. rustdesk

    An open-source remote desktop application designed for self-hosting, as an alternative to TeamViewer.

    RustDesk is intended to be a TeamViewer alternative but works quite well as a simple remote desktop application:

    https://github.com/rustdesk/rustdesk

  5. rerun

    Visualize streams of multimodal data. Free, fast, easy to use, and simple to integrate. Built in Rust.

    It's nearly impossible to have an idea that is truly novel and has no prior art. Even if it isn't the exact same thing, you can see the ideas that inspired this one. All of us are standing on the shoulders of giants all the time.

    But you've missed a couple of reasons why Rust rewrites are popular. Rewriting in Rust is proven path to better performance (Python codebases pandas -> polars, black -> ruff) or better security. C/C++ codebases like FreeType being rewritten in Rust for security (https://developer.chrome.com/blog/memory-safety-fonts). What should people looking for performance or security do to mollify you?

    You are asking why aren't completely new ideas being implemented in Rust? They are. Check out https://rerun.io. I could be mistaken, but I haven't seen anything similar to rerun. And that was implemented in Rust. Maybe these aren't visible because there genuinely are so few things that are completely novel.

  6. qemu-display

    > I wonder if tools like Proxmox could use this as a more efficient alternative to VNC (which is slow and weird) or SPICE (for which there are very few non-Linux tools).

    Yeah, we're actually evaluating such things, and we hope that IronRDP and QEMU display [0] can be part of a stack that replaces SPICE in the long term, but it will need a bit more time.

    [0]: https://gitlab.com/marcandre.lureau/qemu-display/

  7. Iron python

    Implementation of the Python programming language for .NET Framework; built on top of the Dynamic Language Runtime (DLR).

    I think of IronPython and IronRuby and IronScheme, early attempts at Microsoft trying to combine cornmeal with .NET and open source and calling it a burrito.

      https://ironpython.net/

  8. xrdp

    xrdp: an open source RDP server

    Just a quick note from somebody who's been tinkering with RDP: RDP is so much more than remote desktop, and this ironrdp thing looks cool but is also severely limited.

    xrdp supports forwarding audio (playback and microphone forwarding, both ways) as well as local folder forwarding. And I think i also got webcam working (webcam on my laptop forwarded to the browser running on the remote host).

    for reference: https://www.xrdp.org/

    I hope this implementation gets to a maturity level to make it actually usable for realistic remote desktop usage :)

  9. InfluxDB

    InfluxDB high-performance time series database. Collect, organize, and act on massive volumes of high-resolution data to power real-time intelligent systems.

    InfluxDB logo
  10. Apollo

    Sunshine fork - The easiest way to stream with the native resolution of your client device (by ClassicOldSong)

    > in sunshine/moonlight such as you still have monitor output

    Apollo[1] fixes this problem really neatly - there's a "Virtual Desktop" option that adds a virtual desktop, and you can disable all the local monitors while in this session so that a local person doesn't see your desktop while you're remoted into it (just remember to lock after you end your session!).

    I believe it also preserves monitor layouts when starting/ending sessions.

    I used Sunshine and had a bunch of hacks in the startup/teardown scripts to get the same behavior but it was really brittle. Apollo makes this work out of the box.

    [1] https://github.com/ClassicOldSong/Apollo

  11. windowsserverdocs

    Public content repository for Windows Server content.

    If you are connecting to an RDS host, you need a CAL.

    https://github.com/MicrosoftDocs/windowsserverdocs/blob/main...

  12. matrix.to

    A simple stateless privacy-protecting URL redirecting service for Matrix

    We would be very happy if proxmox were to adopt IronRDP. I see you've already found the work from Marc-André Lureau, he's been doing an incredible job for the IronRDP server side. He's also been working on adding QOI image codec in IronRDP with incredible results. You're welcome to pop in the IronRDP matrix channel: https://matrix.to/#/!opeocvkWZVaLDouykU:matrix.org?via=matri...

NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts

  • Apache Guacamole: a clientless remote desktop gateway

    7 projects | news.ycombinator.com | 29 Mar 2024
  • FreeRDP: A Remote Desktop Protocol Implementation

    10 projects | news.ycombinator.com | 28 Sep 2023
  • RDP Server for Mac? Looking for a way to control my MAC from my Windows machine (No VNC)

    3 projects | /r/MacOS | 9 May 2023
  • FOSS alternative to Teamviewer

    4 projects | /r/linuxquestions | 28 Apr 2023
  • Tips & Tricks for Productivity with BOOX (Obsidian, Syncthing, Weylus, RustDesk, Termux, KDE Connect, ZeroTier) + 2 Bonus Screensavers

    12 projects | /r/Onyx_Boox | 12 Apr 2023

Did you know that Rust is
the 5th most popular programming language
based on number of references?