Amid the fanfare of last week's Chrome OS announcement, Google quietly released an open source NX server, dubbed Neatx, for remote desktop display.
NX technology was developed by NoMachine to handle remote X Window connections and make a graphical desktop display usable over the Internet.
By its own admission, Google has been looking at remote desktop technologies for “quite a while” and decided to develop Neatx as existing NX server products are either proprietary or difficult to maintain.
“The good old X Window system can be used over the network, but it has issues with network latency and bandwidth. Neatx remedies some of these issues,” Google engineers wrote on the company's open source blog.
NoMachine had released parts of the source code to its NX product under the GPL, but the NX server remained proprietary.
There is a free implementation of an NX server based on NoMachine's libraries named FreeNX, but this did not appeal to Google.
“FreeNX's primary target is to replace the one closed component and is written in a mix of several thousand lines of Bash, Expect and C, making FreeNX difficult to maintain,” according to Google.
“Designed from scratch with flexibility and maintainability in mind, Neatx minimizes the number of involved processes and all code is split into several libraries.”
Neatx is written in Python, with a few wrapper scripts in Bash and one program written in C “for performance reasons”.
“Neatx was also able to reuse some code from another Google open source project, Ganeti. The code still has some issues, but we're confident interested developers will be able to fix them.”
Google also claims Neatx implements features not found in FreeNX, like a drop-down menu for session control in rootless sessions. However, not all of FreeNX's features are implemented in Neatx.
There has already been some speculation that Neatx will be the default display server for the upcoming Chrome OS. Google insists the release date was just a coincidence.
Neatx features include session creation, suspension, resumption, and shutdown; support for Gnome, KDE, application, and console sessions; floating window/virtual desktop sessions; full screen, resolution, and keyboard preferences; and session shadowing (only sessions belonging to you).
Features not supported yet include terminating a session from the session list; Windows/VNC sessions; and sound, printer and Samba tunneling.
Neatx can be downloaded from Google's code repository.