The primary NX clients are the official freeware, NoMachine, and NoMachine Enterprise Client. Several
open-source projects can also use the NX protocol but many of these OSS projects do not work with more recent versions of the official NX software. An OS mature project was Lawrence Roufail's
nxc client library, a full library which can be used for other clients to build upon. The
nxrun application utilizes this library. , the library does not allow suspending or resuming sessions, and uses only
JPEG graphics compression. The
kNX project was a proof-of-concept application written by Joseph Wenninger, with plans for it to eventually become a complete NX client to show that an open-source client could be written. Its development was halted before it was completed. In late 2005,
Fabian Franz and George Wright began modifying kNX to use the nxc library, but abandoned the project. More recent open-source efforts include
QtNX, which offers full suspend and resume. However, it has been reported as incompatible with the most recent NX libraries.
Nxcl, an update to nxclientlib, the core of QtNX, was completed by Seb James in September 2007, and works with version 3 of the NX core libraries. It also drops dependency on Qt, which prevented nxclientlib from becoming widely used as a cross-platform basis for NX client programs. nxcl provides a library that can be linked to a client program (libnxcl), and a self-contained NX client with a
D-Bus API (the nxcl binary). It is available from the FreeNX
Subversion server. Another obsolete (last updated Jan 2013) OSS NX client is
OpenNX, described as a "drop-in replacement for NoMachine's [proprietary] nxclient" with full suspend and resume. Various open-source terminal server projects, such as
X2Go, also use the NX protocol. However, X2Go is not compatible with other NX servers or clients.
Remmina, another recent GTK+ remote desktop client project, announced the ability to use the NX protocol in its release 0.8. == Previous X11 compression schemes ==