Nailgun: Insanely Fast Java

Important Update

Nailgun has been a lot of fun to work on, and it's been great to see how others have used it. And even though I have not updated it myself in several years, it's gratifying to see that not only is it still useful to others, but it also still receives regular code contributions from people who count on it.

In particular, Jim Purbrick and Ilya Klyuchnikov of Facebook have made tremendous contributions and have been all-around good stewards of the code - as have several other Facebook engineers I'm sure, on whose behalf both Jim and Ilya have submitted contributions.

So it only makes sense that as of October, 2017 I am transferring the nailgun repository to Facebook for future development. Thanks to everyone who has contributed, used, documented, recommended, or otherwise helped with this project. I'm looking forward to seeing where Facebook takes it!

- Marty

Thinnest. Client. Ever?

Nailgun is a client, protocol, and server for running Java programs from the command line without incurring the JVM startup overhead. Programs run in the server (which is implemented in Java), and are triggered by the client (written in C), which handles all I/O.

What's New?

See the Changelog.

How does it work?

See the project background.

How do I get it?

From GitHub.

Before you download it, be aware that *it's not secure*. Not even close. Although there are means to ensure that the client is connected to the server from the local machine, there is not yet any concept of a "user". Any programs that run in Nailgun are run with the same permissions as the server itself. You have been warned.

How do I use it?

See the Quick Start guide.