0.1.0 • Published 5 years ago

tunfd v0.1.0

Weekly downloads
4
License
ISC
Repository
github
Last release
5 years ago

node-tunfd

It makes tun/tap interfaces.

How to use

const tunfd = require('tunfd');
const fs = require('fs');

let iface = new tunfd.TunInterface({
  // optional, kernel will automatically assign a name if not given here
  name: 'tun0',
  // can be either "tun" or "tap", default is "tun"
  // tun mode gets you ip packets, tap mode gets you ethernet frames
  mode: 'tun',
  // set to true if you want the 4-byte packet information header
  // default is false, which adds IFF_NO_PI to ifr_flags
  pi: false
});

// if you want to know the auto-assigned name of the interface
console.log(iface.name);
// the fd of the new interface
console.log(iface.fd);

// how to get packets
let readStream = fs.createReadStream(null, { fd: iface.fd });
readStream.on('data', packet => { ... });
// how to put packets
let writeStream = fs.createWriteStream(null, { fd: iface.fd });
writeStream.write(...);

// fork()
console.log(tunfd.fork());

License

ISC