{
"repo": "udx-native",
"timestamp": "2026-01-16T23:39:44.892Z",
"entryPoint": "lib/udx.js",
"exports": {
"packageJson": {
"main": "lib/udx.js"
}
},
"api": {
"file": "lib/udx.js",
"exports": [
{
"type": "default",
"name": "class"
}
],
"classes": [
{
"name": "UDX"
}
],
"functions": [
{
"name": "onlookup"
}
]
},
"readme": {
"content": "# udx-native\n\nudx is reliable, multiplexed, and congestion-controlled streams over udp.\n\n```\nnpm i udx-native\n```\n\nIt's a transport protocol, made only for peer-to-peer networking.\n\nNo handshakes. No encryption. No features. This is good for P2P.\\\nJust fast streams and messages that are composable into powerful things.\n\n## Usage\n\n```js\nconst UDX = require('udx-native')\n\nconst u = new UDX()\nconst a = u.createSocket()\nconst b = u.createSocket()\n\nb.on('message', function (message) {\n console.log('received', message.toString())\n a.close()\n b.close()\n})\n\nb.bind(0)\na.send(Buffer.from('hello'), b.address().port)\n```\n\n```js\nconst UDX = require('udx-native')\n\nconst u = new UDX()\n\nconst socket1 = u.createSocket()\nconst socket2 = u.createSocket()\n\nsocket1.bind()\nsocket2.bind()\n\nconst stream1 = u.createStream(1)\nconst stream2 = u.createStream(2)\n\nstream1.connect(socket1, stream2.id, socket2.address().port, '127.0.0.1')\nstream2.connect(socket2, stream1.id, socket1.address().port, '127.0.0.1')\n\ns",
"sections": [
"intro",
"usage",
"api",
"sockets",
"streams",
"network interfaces",
"dns",
"dev setup",
"license"
],
"hasApi": true,
"hasExamples": true,
"exampleCount": 8,
"examples": [
"npm i udx-native",
"const UDX = require('udx-native')\n\nconst u = new UDX()\nconst a = u.createSocket()\nconst b = u.createSocket()\n\nb.on('message', function (message) {\n console.log('received', message.toString())\n a.close()\n b.close()\n})\n\nb.bind(0)\na.send(Buffer.from('hello'), b.address().port)",
"const UDX = require('udx-native')\n\nconst u = new UDX()\n\nconst socket1 = u.createSocket()\nconst socket2 = u.createSocket()\n\nsocket1.bind()\nsocket2.bind()\n\nconst stream1 = u.createStream(1)\nconst stream2 = u.createStream(2)\n\nstream1.connect(socket1, stream2.id, socket2.address().port, '127.0.0.1')\nstream2.connect(socket2, stream1.id, socket1.address().port, '127.0.0.1')\n\nstream1.write(Buffer.from('hello'))\nstream1.end()\n\nstream2.on('data', function (data) {\n console.log(data)\n})\n\nstream2.on('end', function () {\n stream2.end()\n})\n\nstream1.on('close', function () {\n console.log('stream1 closed')\n socket1.close()\n})\n\nstream2.on('close', function () {\n console.log('stream2 closed')\n socket2.close()\n})"
]
},
"patterns": [
"streaming"
]
}