
Product
Introducing Reachability for PHP
Reachability analysis for PHP is now available in experimental, helping teams identify which vulnerabilities are actually exploitable.
Plugin server
const hoplite = require('hoplite');
const app = hoplite.createServer({
'settings.hoplite.access.enabled': true,
'settings.hoplite.acccess.port': 31234
});
app.use((context, next) => {
const logger = context.get('logger');
const bus = context.get('bus');
logger.trace('init plugin 1');
const reverse = s => s.split('').reverse().join('');
for (let i = 0; i < 10; i++) {
bus.register('ping', s => Promise.resolve(`handler #${i} => ` + reverse(s)));
}
logger.trace('done plugin 1');
return next();
});
app.use((context, next) => {
const logger = context.get('logger');
const bus = context.get('bus');
logger.trace('init plugin 2');
const ping = () => {
bus.request('ping', 'Hello world!!!')
.then(result => logger.info(result))
.catch(ex => logger.error(ex));
};
bus.register('APP_START', () => setInterval(ping, 1000));
logger.trace('done plugin 2');
return next();
});
app.start();
process.once('SIGINT', () => app.stop());
$ npm run demo
3/16/2018 11:22:03 AM INFO server is starting...
3/16/2018 11:22:03 AM INFO hoplite-access plugin is starting
3/16/2018 11:22:03 AM TRACE init plugin 1
3/16/2018 11:22:03 AM TRACE done plugin 1
3/16/2018 11:22:03 AM TRACE init plugin 2
3/16/2018 11:22:03 AM TRACE done plugin 2
3/16/2018 11:22:03 AM INFO hoplite-access server is running on port 31234
3/16/2018 11:22:04 AM INFO handler #1 => !!!dlrow olleH
3/16/2018 11:22:05 AM INFO handler #2 => !!!dlrow olleH
3/16/2018 11:22:06 AM INFO handler #3 => !!!dlrow olleH
3/16/2018 11:22:06 AM DEBUG hoplite-access plugin - request from 127.0.0.1
3/16/2018 11:22:06 AM DEBUG send request to ping
3/16/2018 11:22:07 AM INFO handler #5 => !!!dlrow olleH
3/16/2018 11:22:08 AM INFO handler #6 => !!!dlrow olleH
3/16/2018 11:22:09 AM DEBUG hoplite-access plugin - request from 127.0.0.1
3/16/2018 11:22:09 AM DEBUG send broadcast to ping
3/16/2018 11:22:09 AM INFO handler #7 => !!!dlrow olleH
3/16/2018 11:22:10 AM INFO handler #8 => !!!dlrow olleH
3/16/2018 11:22:11 AM INFO handler #9 => !!!dlrow olleH
3/16/2018 11:22:12 AM INFO handler #0 => !!!dlrow olleH
3/16/2018 11:22:13 AM INFO handler #1 => !!!dlrow olleH
3/16/2018 11:22:14 AM INFO handler #2 => !!!dlrow olleH
3/16/2018 11:22:15 AM INFO handler #3 => !!!dlrow olleH
3/16/2018 11:22:16 AM INFO handler #4 => !!!dlrow olleH
Simple plugin for send bus request or broadcast from outside server
curl -XPOST http://localhost:31234/ping -d 'Hello world 123'
curl -XPOST http://localhost:31234/request/ping -d 'Hello world 123'
handler #2 => 321 dlrow olleH
$ curl -XPOST http://localhost:31234/broadcast/ping -d 'Hello world 123'
["handler #5 => 321 dlrow olleH","handler #1 => 321 dlrow olleH","handler #2 => 321 dlrow olleH","handler #3 => 321 dlrow olleH","handler #4 => 321 dlrow olleH"]

FAQs
Plugin server
We found that hoplite demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Product
Reachability analysis for PHP is now available in experimental, helping teams identify which vulnerabilities are actually exploitable.

Product
Export Socket alert data to your own cloud storage in JSON, CSV, or Parquet, with flexible snapshot or incremental delivery.

Research
/Security News
Bitwarden CLI 2026.4.0 was compromised in the Checkmarx supply chain campaign after attackers abused a GitHub Action in Bitwarden’s CI/CD pipeline.