ZPE-PM is the latest feature to make it into ZPE 1.14.4, and it's a major addition.
ZPE-PM or ZPE Process Manager works like PHP-FPM (FastCGI Process Manager). ZPE-PM is designed to run as a daemon process, much like ZPE Lite (more on that later).
One of the biggest limitations of traditional scripting setups is that every request starts from scratch.
- Load runtime
- Parse code
- Execute
- Tear everything down
That’s fine for small scripts, but as things grow, it becomes inefficient — and harder to scale.
So I built ZPE-PM.
ZPE-PM is a long-running process that executes ZPE scripts over a socket connection.
Instead of launching ZPE for every request, you:
- Start ZPE-PM once
- Send it execution requests over a socket
- Receive results (or live output)
It acts as a bridge between:
- clients (CLI tools, web servers like VWS)
- and the ZPE runtime
ZPE Lite is now, well, really lite. Using the zpe -l command to run the Lite mode is easy. You simply provide a file name to run through ZPE-PM (ZPE-PM must be running), and a host and port number are optional. By default, the host is localhost, and the port is 8940.
You can also communicate with ZPE-PM with Python, C#, or any programming language that supports sockets.
It's very fast. Processing with ZPE 1.14.4 has become considerably faster overall, so the Standard Algorithms went from 650ms to around 300ms in the latest update. But ZPE-PM makes the whole process really fast, and the newly improved ZPEC caching system comes in really handy for further performance improvements. Running a script once caches the byte codes for the next run. But not only that, ZPEC is designed for low-latency internalised communication, so requests are very lightweight, adding only around 7ms of overhead.
