Getdown (yes, it's the funky stuff) aims to provide a system for downloading and installing a collection of files on a user's machine and upgrading those files as needed. Though just any collection of files would do, Getdown is mainly intended for the distribution and maintenance of the collection of files that make up a Java application.
It was designed as a replacement for Java Web Start due to limitations in Java Web Start's architecture which are outlined in the rationale section.
A tutorial and more detailed specification are available from the Documentation page. Questions can be posted to the OOO Libs Google group.
The main design and operation of Getdown is detailed on the design page. You can also browse the javadoc documentation and source code if you're interested in implementation details.
Getdown was originally written by developers at OOO for the deployment of their Java-based massively multiplayer games. Try out any of the following games to see it in action:
- Puzzle Pirates - OOO
- Bang! Howdy - OOO
- Spiral Knights - OOO
- Tribal Trouble 2 - Oddlabs
Getdown is implemented in Java, but certainly can be used to deploy non-Java-based applications. Doing so would be a little crazy since you may have to install a JVM on the user's machine (if they don't already have one installed), which is a ~7MB download. This isn't so bad if you're already installing a Java application and must have a JVM, but it's a little crazy if the JVM is only used for your installer. It is probably possible to compile Getdown with GCJ, which would make Getdown a viable choice for non-Java applications.
The latest version of Getdown can be obtained thusly:
- Download the pre-built jar file from Maven Central: getdown-1.6.2.jar
- Obtain the jar artifact via Maven with the following identifier:
com.threerings:getdown:1.6.2
. - Check out the code and build it yourself.
You can also:
- View the javadoc documentation online.
- Browse the source code online.
Getdown is built with Maven in the standard ways. Invoke the following commands, for fun and profit:
% mvn compile # builds the classes
% mvn test # builds and runs the unit tests
% mvn package # builds and creates jar file
% mvn install # builds, jars and installs in your local Maven repository
Feel free to pop over to the OOO Libs Google Group to ask questions and get (and give) answers.