An open API service indexing awesome lists of open source software.

https://github.com/hellomouse/node-tunfd

mostly incomplete: please don't use this - Node.js native module (N-API) for creating and configuring tun/tap interfaces and maybe also more things
https://github.com/hellomouse/node-tunfd

Last synced: 30 days ago
JSON representation

mostly incomplete: please don't use this - Node.js native module (N-API) for creating and configuring tun/tap interfaces and maybe also more things

Awesome Lists containing this project

README

        

# node-tunfd

It makes tun/tap interfaces.

## How to use

```js
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