What is JStyx?

JStyx is a pure-Java implementation of the Styx protocol for distributed systems. Styx is used by the Inferno and Plan9 operating systems. Styx is essentially a file-sharing protocol; it is similar in many respects to NFS but in Styx systems, files do not always represent bytes on the hard disk. They may represent a chunk of RAM, a physical device such as the screen, the interface to a device such as a digital camera or the interface to a program.

Both the Inferno and Plan9 operating system virtualize all resources as files and both use Styx as the protocol for accessing all these files, irrespective of the underlying resource they represent and their location (local or remote). Applications in Inferno and Plan9 do not know the difference between local and remote files: the underlying operating system routes all Styx messages to the correct location. Therefore the creation of distributed systems with Inferno and Plan9 is very easy. The idea behind JStyx is to allow similarly easy development of distributed applications in other operating systems.

What can I use JStyx for?

There are several potential uses of JStyx in the field of distributed systems:

  • Java interface to Inferno/Plan9 systems (e.g. web interface to Inferno Grid)
  • Standalone clients and servers (e.g. messaging systems). See JStyx tutorial.
  • Styx Grid Services. See SGS tutorial.

Why should I use JStyx for my distributed system?

Lots of reasons:

  • Lightweight - Styx messages are very short and add little bloat to the payload
  • Built on robust framework (Apache MINA)
  • Platform independence
  • Secure (in future! not in current public release)

Where can I go for help?

The first place to go for information is the JStyx website, which is where you are probably reading this FAQ ;-). You can join the mailing lists: the jstyx-users mailing list is the one to use for posting questions about all aspects of the use of JStyx. Please check the archives (and read through this FAQ!) before posting a new question.

Download and installation

Download and installation
How do I install JStyx?

See the instructions here.

Which operating systems are supported?

The JStyx software (and the Styx Grid Services software) have only been tested on Windows XP and Linux. However, the software is pure Java and should work on any platform that has a Java runtime environment, version 1.4.2 and above.

The software is distributed as Windows and Unix versions, but the only difference between the versions is the scripts that are used to launch programs. The core libraries are identical. Mac OSX users should get the Unix distribution (although this has not yet been tested).

What is the licence?

The JStyx software is released under a BSD-style Open Source licence: see here for the full licence text. Essentially you are allowed to do anything with the software, provided that you include the licence text with any redistribution.

Styx Grid Services

Styx Grid Services
What are Styx Grid Services?
See these pages.