Skip to content

little-core-labs/secure-rpc-protocol

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

30 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

secure-rpc-protocol

Actions Status

Secure rpc-protocol over any duplex socket using noise-protocol.

Installation

npm install secure-rpc-protocol

Usage

// client.js
const secureRPC = require('secure-rpc-protocol')
const net = require('net')

const socket = new net.Socket()

socket.connect(8124, () => {
  const rpc = secureRPC(socket, true)

  rpc.call('echo', 'hello world', (err, res) => {
    if (err) return console.error(err)
    console.log(res) // [ 'hello world' ]
  })
})
// server.js
const net = require('net')
const secureRPC = require('secure-rpc-protocol')

const server = net.createServer((socket) => {
  const rpc = secureRPC(socket, false)

  rpc.command('echo', (req) => {
    console.log(req.arguments)
    return req.arguments
  })
})

server.listen(8124, () => {
  console.log('server listening on 8124')
})

API

secureRPC = require('secure-rpc-protocol')

Import the secureRPC factory function used to create a secureRPC instance.

peer = secureRPC.peer

Access to noise-peer. Useful for accessing peer.keygen.

rpc = secureRPC(stream, isInitiator, [opts])

Pass in a duplex stream and indicate if the stream isInitiator according to what noise-protocol being used.

The opts object is passed to noise-peer with the exception of the encoder property, which is passed to rpc-protocol.

See rpc-protocol docs on how to use the rpc api.

See noise-peer and noise-protocol and the included examples to understand the details of securing the connection.

Examples

See also

License

MIT