JCraft Inc.

WiredX.net has launched!  

About JCraft
Contact JCraft
Crafts under [L]GPL
new! ChangeLog
   JDxpc -- Pure Java DXPC
JDxpc is a reimplementation of dxpc(Differential X Protocol Compressor) in pure Java and encrypts the compressed data stream in SSL.

dxpc is an X protocol compressor designed to improve the speed of X11 applications run over low-bandwidth links (such as dialup PPP connections). More detailed descriptions about dxpc are available at its home page. Here, instead of listing explanations, Alan Cox's comments about dxpc on Boardwatch Magazine,February,1998 are quoted.

"...   Dxpc is the alternative most people prefer. These systems act as proxy X11 servers and compress datastreams by well over 50 percent for normal requests, often reaching a reduction to 25 percent of the original bandwidth usage. With dxpc, X windows applications are quite usable over a 28.8 modem link or across the Internet."


  • JDxpc is in pure JavaTM.
  • JDxpc is under LGPL.
  • JDxpc is compatible with dxpc-3.7.0(the newest version of dxpc is 3.8.0).
  • The compressed X protocol stream is encrypted in SSL.
    To use this functionality, Java2 and JSSE(Java Secure Socket Extension) are required.
  • JDxpc support MultiClientProxy.new!
    This functionality allows to run multiple client proxies on a server in one process. The MultiClientProxy has been developed by Marcus Schiesser. Check README.MultiClientProxy.

Current Status
The server proxy and the client proxy have been implemented. JDxpc is now free from dxpc binaries.

How To Try
Suppose that you are in front of a machine, named "local", on which an X server is running and you want to run x clients on a machine, named "remote". Try,

  • on remote: java com.jcraft.jdxpc.ClientProxy &
  • on local: xhost +localhost
  • on local: java com.jcraft.jdxpc.ServerProxy remote
  • on remote: export DISPLAY=localhost:8.0
  • on remote: xlogo &
  • on remote: xterm &
If "remote" is a big endian machine, JDxcp may not work correctly.

Encrypting the Compressed Data Stream
JDxpc encrypts the compressed data stream between proxies by JSSE(Java Secure Socket Extension). Check README.

Needless to say, JDxpc has been based on the awesome works of the dxpc authors.

  • Brian Pane(brianp@cnet.com) is an original author of dxpc.
  • Zachary Vonler(lightborn@mail.utexas.edu) is a current maintainer.
Many thanks to them and many contributes of dxpc.
Particularly, we would thank to Brain Pane, who kindly allow us to distribute JDxpc under LGPL.

new! JDxpc 0.0.6 is available.

Now, JDxpc has bee provided to the world on demand from WiredX.net with WiredX(pure Java X server).

To Do

  • In current version, some inefficient code are included; for example, in marshaling operations. We will improve them.
  • JDxpc encrypts the data stream and this functionality depends on the implementation of JSSE. At present, Sun provides its reference implementation and some vendors has announced that they will release their own implementation, but it seems they are not 'free'. So, the current situation is almost same in the early days of KDE, which had depend on 'proprietary' Qt. We want to change this situation. If we have time and abilities, we will try to implement JSSE in free.
  • We have planed to improve compression algorithms. JDxpc will be downloadable on demand, so algorithms will be changed easily. This point is an advantage to dxpc and LBX.

Comments/suggestions are accepted at jdxpc@jcraft.com.

Last modified: 15-Nov-2000
Copyright 1998-2004 JCraft Inc. All rights reserved.
Send comments and questions to info@jcraft.com.
Valid HTML 4.0!    Valid CSS!