A fast JVM launcher that reduces startup times by keeping pre-initialized JVMs in reserve, then discarding them after use.
Drip is a launcher for the Java Virtual Machine that dramatically reduces startup times by keeping pre-initialized JVMs ready for quick connections, then discarding them to avoid state contamination. It solves the slow startup problem common in JVM-based development and scripting, acting as a drop-in replacement for the standard `java` command.
Developers working with JVM-based languages like Java, Clojure, or Scala who need faster startup times for REPLs, scripts, or build tools, particularly in environments where rapid iteration is essential.
Developers choose Drip because it offers faster JVM startup without the complexity and state issues of persistent JVM solutions, providing a simple, reliable, and compatible tool that integrates seamlessly into existing workflows.
Fast JVM launching without the hassle of persistent JVMs.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Drip maintains pre-initialized JVMs in reserve based on hashed options, allowing quick connections that bypass the slow cold start of the standard `java` command, ideal for repetitive tasks.
It uses identical arguments to `java`, enabling seamless integration into existing scripts, build tools, and workflows without modification, as highlighted in the README's usage examples.
By discarding JVMs after use instead of keeping them persistent, Drip prevents the dirty state issues and strange errors common in tools like Nailgun, ensuring reliability.
The DRIP_SHUTDOWN environment variable allows setting timeouts for JVM deactivation, giving users control over resource management and cleanup.
Via DRIP_INIT and DRIP_INIT_CLASS, Drip can run custom code at startup to precompile classes or load dependencies, speeding up runtime for languages like Clojure.
Implemented as a bash script with C and Java code, Drip is limited to Unix-like environments where bash is available, complicating adoption on native Windows without workarounds like WSL.
Keeping JVMs in reserve consumes memory even when idle, which could be a concern in resource-constrained systems or for users managing multiple concurrent projects.
Since Drip hashes JVM options to identify reserved JVMs, any change in arguments—even minor ones—requires a new slow spin-up, reducing benefits for workflows with variable configurations.
The README provides basic setup but lacks comprehensive examples or troubleshooting guides; advanced features like pre-initialization rely on a wiki that may not be fully detailed.