
Research
Security News
Lazarus Strikes npm Again with New Wave of Malicious Packages
The Socket Research Team has discovered six new malicious npm packages linked to North Korea’s Lazarus Group, designed to steal credentials and deploy backdoors.
nanomessage-rpc
Advanced tools
Tiny :hatched_chick: RPC on top of nanomessage
$ npm install nanomessage-rpc
const nanorpc = require('nanomessage-rpc')
;(async () => {
const rpc = nanorpc(socket, opts)
await rpc
.action('sum', ({ a, b }) => a + b)
.action('subtract', ({ a, b }) => a - b)
.open()
// from the other rpc socket side
const result = await rpc.call('sum', { a: 2, b: 2 }) // 4
})()
Also it has an emittery instance to emit events through the socket.
;(async () => {
const rpc = nanorpc(socket, opts)
await rpc.open()
rpc.on('ping', () => {
console.log('ping')
})
// from the other rpc socket side
const result = await rpc.emit('ping') // 4
})()
const rpc = nanorpc(socket, options)
Create a new nanomessage-rpc.
Options include:
timeout: 10 * 1000
: Time to wait for the response of a request.concurrency: Infinity
: Defines how many requests do you want to run in concurrent.codec: JSON
: Defines a compatible codec to encode/decode messages in nanomessage.rpc.open() -> Promise
Opens nanomessage and start listening for incoming data.
rpc.close() -> Promise
Closes nanomessage and unsubscribe from incoming data.
rpc.action(actionName, handler)
Defines a rpc action and handler for incoming requests.
actionName: string
: Name of the action.handler: function
: Handler, coulb be async
.rpc.actions(actions)
Shortcut to define multiple actions.
actions: { actionName: handler, ... }
: List of actions.rpc.call(actionName) -> Promise<Response>
Call an action an wait for the response.
actionName: string
: Action name.rpc.on(eventName, handler) -> unsubscribe
Subscribe to a RPC event.
Returns an unsubscribe method.
rpc.once(eventName) -> Promise
Subscribe to a RPC event only once. It will be unsubscribed after the first event.
Returns a promise for the event data when eventName is emitted.
rpc.off(eventName)
Remove a RPC event subscription.
rpc.events(eventName)
Get an async iterator which buffers data each time a RPC event is emitted.
Call return()
on the iterator to remove the subscription.
for await (const data of rpc.events('ping')) {
console.log(data)
if (disconnected) break
}
:bug: If you found an issue we encourage you to report it on github. Please specify your OS and the actions to reproduce it.
:busts_in_silhouette: Ideas and contributions to the project are welcome. You must follow this guideline.
MIT © A GEUT project
FAQs
Tiny rpc on top of nanomessage
We found that nanomessage-rpc 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.
Research
Security News
The Socket Research Team has discovered six new malicious npm packages linked to North Korea’s Lazarus Group, designed to steal credentials and deploy backdoors.
Security News
Socket CEO Feross Aboukhadijeh discusses the open web, open source security, and how Socket tackles software supply chain attacks on The Pair Program podcast.
Security News
Opengrep continues building momentum with the alpha release of its Playground tool, demonstrating the project's rapid evolution just two months after its initial launch.