emacs-pool is an emacs daemon pool that preloads single-use emacs daemons in the background. It aims to provide an equivalent experience to non-daemon mode emacs but with a faster startup.
emacs-pool consists of two binaries:
emacs-pool-daemon: Pre-loads emacs daemons in the background. Automatically starts up new daemons, and kills daemons after use. Listens for client connections via unix domain socket.
emacs-pool-client: Asksemacs-pool-daemon for a new emacs daemon, and then runsemacsclient to connect to it. The emacs daemon will be destroyed afteremacsclient is closed.
Releases for certain architectures are available on GitHub, else you can build and install it yourself.
Requirements:
- Rust and Cargo installation
- emacs 26.1 or newer (for --fg-daemon flag)
cargo install emacs-pool will build and installemacs-pool-daemon andemacs-pool-client to your cargo bin directory.
Link or copyscripts/run.sh to somewhere on your path and use it instead of emacs. The script will automatically start upemacs-pool-daemon in the background if necessary before invokingemacs-pool-client. Edit the script variables at the top to configure socket path and emacs paths.
- The daemon can be shutdown with
killall emacs-pool-daemon when startup withrun.sh. Using SIGKILL (-9) would not give the server time to shutdown the emacs daemons, and you would have to do so manually.