Xpra

Last updated
Original author(s) Nathaniel Smith
Developer(s) Nathaniel Smith, Antoine Martin
Initial releaseFebruary 20, 2008;15 years ago (2008-02-20)
Stable release
4.4.6 [1] / June 20, 2023;7 months ago (2023-06-20)
Written in Python
Operating system Unix-like, MS Windows, Mac OS X
Available inEnglish
License GPL-2.0-or-later
Website xpra.org

xpra, abbreviated from X Persistent Remote Applications, is a set of software utilities that run X clients, typically on a remote host, and direct their display to the local machine without the X clients closing or losing any state in case the network connection between the local machine and the remote host is lost. [2]

Contents

Xpra differs from standard X forwarding primarily in allowing disconnection and reconnection without disrupting the forwarded application. [3] It also differs from VNC and similar remote display technologies in being rootless, so applications forwarded by Xpra appear on the local desktop as normal windows managed by the local window manager, rather than being all "trapped in a box together". Xpra also uses a custom protocol that is self-tuning and relatively latency-insensitive, and thus is usable over worse links than standard X.[ citation needed ]

The original inspiration for making Xpra came from the original author's experience of attempting to use various setups based on NX technology. [4]

Operation

The display server manages the input and the output for all of its clients. Xpra acts like a compositing window manager. X client server example.svg
The display server manages the input and the output for all of its clients. Xpra acts like a compositing window manager.

Xpra connects as a compositing window manager to an Xvfb display server. However, instead of combining the window images to present on the screen, it directs the window images into a network connection to the Xpra client, where they are displayed on the remote screen. The Xpra server also supports direct attachment, which makes it behave as a persistent application server, for example in the case where there is only an X server available at the remote end.

Xpra also acts as a window manager for the X server it is running against, but it does not actually have any window manager policy built into it. Instead, it takes all the window management requests from the applications, sends them over the wire to the client, which then issues those same requests on the real display, waits for further answer the real window manager gives, and then forwards that answer back to the Xpra server. In addition to the normal Xpra client, it also supports using an HTML 5 capable web browser as a client. [5]

See also

Related Research Articles

<span class="mw-page-title-main">Thin client</span> Non-powerful computer optimized for remote server access

In computer networking, a thin client is a simple (low-performance) computer that has been optimized for establishing a remote connection with a server-based computing environment. They are sometimes known as network computers, or in their simplest form as zero clients. The server does most of the work, which can include launching software programs, performing calculations, and storing data. This contrasts with a rich client or a conventional personal computer; the former is also intended for working in a client–server model but has significant local processing power, while the latter aims to perform its function mostly locally.

<span class="mw-page-title-main">X Window System</span> Windowing system for bitmap displays on UNIX-like systems

The X Window System is a windowing system for bitmap displays, common on Unix-like operating systems.

<span class="mw-page-title-main">Windowing system</span> Software that manages separately different parts of display screens

In computing, a windowing system is a software suite that manages separately different parts of display screens. It is a type of graphical user interface (GUI) which implements the WIMP paradigm for a user interface.

<span class="mw-page-title-main">Inter-process communication</span> How computer operating systems enable data sharing

In computer science, inter-process communication (IPC), also spelled interprocess communication, are the mechanisms provided by an operating system for processes to manage shared data. Typically, applications can use IPC, categorized as clients and servers, where the client requests data and the server responds to client requests. Many applications are both clients and servers, as commonly seen in distributed computing.

Independent Computing Architecture (ICA) is a proprietary protocol for an application server system, designed by Citrix Systems. The protocol lays down a specification for passing data between server and clients, but is not bound to any one platform. Citrix's ICA is an alternative to Microsoft's Remote Desktop Protocol (RDP).

<span class="mw-page-title-main">Server Message Block</span> Network communication protocol for providing shared access to resources

Server Message Block (SMB) is a communication protocol mainly used by Microsoft Windows equipped computers normally used to share files, printers, serial ports, and miscellaneous communications between nodes on a network. SMB implementation consists of two vaguely named Windows services: "Server" and "Workstation". It uses NTLM or Kerberos protocols for user authentication. It also provides an authenticated inter-process communication (IPC) mechanism.

<span class="mw-page-title-main">Virtual Network Computing</span> Graphical desktop-sharing system

Virtual Network Computing (VNC) is a graphical desktop-sharing system that uses the Remote Frame Buffer protocol (RFB) to remotely control another computer. It transmits the keyboard and mouse input from one computer to another, relaying the graphical-screen updates, over a network.

TightVNC is a free and open-source remote desktop software server and client application for Linux and Windows. A server for macOS is available under a commercial source code license only, without SDK or binary version provided. Constantin Kaplinsky developed TightVNC, using and extending the RFB protocol of Virtual Network Computing (VNC) to allow end-users to control another computer's screen remotely.

Remote Desktop Protocol (RDP) is a proprietary protocol developed by Microsoft Corporation which provides a user with a graphical interface to connect to another computer over a network connection. The user employs RDP client software for this purpose, while the other computer must run RDP server software.

Linux Terminal Server Project (LTSP) is a free and open-source terminal server for Linux that allows many people to simultaneously use the same computer. Applications run on the server with a terminal known as a thin client handling input and output. Generally, terminals are low-powered, lack a hard disk and are quieter and more reliable than desktop computers because they do not have any moving parts.

<span class="mw-page-title-main">Diskless node</span> Computer workstation operated without disk drives

A diskless node is a workstation or personal computer without disk drives, which employs network booting to load its operating system from a server.

NX technology, commonly known as NX or NoMachine, is a remote access and remote control computer software, allowing remote desktop access and maintenance of computers. It is developed by the Luxembourg-based company NoMachine S.à r.l.. NoMachine is proprietary software and is free-of-charge for non-commercial use.

<span class="mw-page-title-main">X display manager</span>

In the X Window System, an X display manager is a graphical login manager which starts a login session on an X server from the same or another computer.

In computing, LBX, or Low Bandwidth X, is a protocol to use the X Window System over network links with low bandwidth and high latency. It was introduced in X11R6.3 ("Broadway") in 1996, but never achieved wide use. It was disabled by default as of X.Org Server 7.1, and was removed for version 7.2.

A home server is a computing server located in a private computing residence providing services to other devices inside or outside the household through a home network or the Internet. Such services may include file and printer serving, media center serving, home automation control, web serving, web caching, file sharing and synchronization, video surveillance and digital video recorder, calendar and contact sharing and synchronization, account authentication, and backup services.

In computing, the term remote desktop refers to a software- or operating system feature that allows a personal computer's desktop environment to be run remotely from one system, while being displayed on a separate client device. Remote desktop applications have varying features. Some allow attaching to an existing user's session and "remote controlling", either displaying the remote control session or blanking the screen. Taking over a desktop remotely is a form of remote administration.

This page is a comparison of notable remote desktop software available for various platforms.

Adaptive Internet Protocol (AIP) is a multi-channel protocol that allows an application running on any of multiple platforms to be displayed on any of a wide range of client systems. It supports rich remote display and input services with a number of display options to deliver the presentation of the remote applications onto the local display either as a standalone window, or within a contained remote environment delivered full-screen or in a standalone window. The protocol also supports audio, printing, and other device mapping services.

Remote Desktop Services (RDS), known as Terminal Services in Windows Server 2008 and earlier, is one of the components of Microsoft Windows that allow a user to initiate and control an interactive session on a remote computer or virtual machine over a network connection. RDS was first released in 1998 as Terminal Server in Windows NT 4.0 Terminal Server Edition, a stand-alone edition of Windows NT 4.0 Server that allowed users to log in remotely. Starting with Windows 2000, it was integrated under the name of Terminal Services as an optional component in the server editions of the Windows NT family of operating systems, receiving updates and improvements with each version of Windows. Terminal Services were then renamed to Remote Desktop Services with Windows Server 2008 R2 in 2009.

Routing and Remote Access Service (RRAS) is a Microsoft API and server software that makes it possible to create applications to administer the routing and remote access service capabilities of the operating system, to function as a network router. Developers can also use RRAS to implement routing protocols. The RRAS server functionality follows and builds upon the Remote Access Service (RAS) in Windows NT 4.0.

References

  1. Martin, Antoine (20 June 2023). "[winswitch][ANNOUNCE] Xpra 4.4.6: a few minor client-side issues". shifter-users@lists.devloop.org.uk (Mailing list). Retrieved 28 July 2023.
  2. Michael Larabel (2013-08-19). "XPRA: Persistent Remote Applications On X". Phoronix.
  3. "Xpra - ArchWiki". wiki.archlinux.org.
  4. Smith, Nathaniel (2009-07-25). "Comment #343389". Google releases Neatx NX server. LWN. Retrieved 2009-07-25. ... I was so frustrated that I wrote a competitor, 'xpra'.
  5. Williams, Al (31 March 2017). "Linux-Fu: Applications on the web". Hackaday . Retrieved 28 September 2018.