
Security News
Researcher Exposes Zero-Day Clickjacking Vulnerabilities in Major Password Managers
Hacker Demonstrates How Easy It Is To Steal Data From Popular Password Managers
posix-socket
Advanced tools
This npm module makes the POSIX Socket API available to node with minimal changes.
sockfd = socket(domain, type, protocol)bind(sockfd, addr)accept(sockfd, addr)connect(sockfd, addr)send(sockfd, buf, len, flags)sendto(sockfd, buf, len, flags, dest_addr)recv(sockfd, buf, len, flags)recvfrom(sockfd, buf, len, flags, src_addr)close(fd)shutdown(sockfd, how)getsockopt(sockfd, level, optname)setsockopt(sockfd, level, optname, optval)Differences with the POSIX Socket API:
sockaddr_un): {sun_family:1, sun_path:"path/to/unix-sock.sock"}.sockaddr_in): {sin_family:2, sin_port:8080, sin_addr:"127.0.0.1"}.sockaddr_in6): {sin6_family:24, sin6_port:8080, sin6_flowinfo:0, sin6_addr:"::1", sin6_scope_id:0}.getsockopt and setsockopt: optval can only be a number.I made this module to perform fast synchronous communication between node processes.
Please, don't ask me why I needed the perform synchronous communication.
Without C++ addon, this can only be achieved with the synchronous API of fs / child_process.
Both these solutions are incredibly inefficient.
const PosixSocket = require("posix-socket");
const sockfd = PosixSocket.socket(PosixSocket.AF_UNIX, PosixSocket.SOCK_STREAM, 0);
PosixSocket.bind(sockfd, {
sun_family: PosixSocket.AF_UNIX,
sun_path: "/tmp/yo.sock"
});
PosixSocket.listen(sockfd, 1);
const address = {};
const sockfd1 = PosixSocket.accept(sockfd, address);
console.log("connection accepted from", address);
const buffer = new ArrayBuffer(100);
const size = PosixSocket.recv(sockfd1, buffer, buffer.byteLength, 0);
console.log("got: <"+String.fromCharCode.apply(null, new Uint16Array(buffer, 0, size))+">");
PosixSocket.close(sockfd);
require("fs").unlinkSync("/tmp/yo.sock");
const PosixSocket = require("posix-socket");
const sockfd = PosixSocket.socket(PosixSocket.AF_UNIX, PosixSocket.SOCK_STREAM, 0);
PosixSocket.connect(sockfd, {
sun_family: PosixSocket.AF_UNIX,
sun_path: "/tmp/yo.sock"
});
const buffer = new ArrayBuffer(100);
const view = new Uint16Array(buffer, 0, buffer.length);
const string = "HelloWorld!";
for (let i = 0; i<string.length; i++)
view[i] = string.charCodeAt(i);
PosixSocket.send(sockfd, buffer, string.length*view.BYTES_PER_ELEMENT, 0);
PosixSocket.close(sockfd);
https://github.com/nodejs/node-gyp/blob/master/macOS_Catalina.md
FAQs
POSIX Socket API on nodeJS
The npm package posix-socket receives a total of 94 weekly downloads. As such, posix-socket popularity was classified as not popular.
We found that posix-socket 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.

Security News
Hacker Demonstrates How Easy It Is To Steal Data From Popular Password Managers

Security News
Oxlint’s new preview brings type-aware linting powered by typescript-go, combining advanced TypeScript rules with native-speed performance.

Security News
A new site reviews software projects to reveal if they’re truly FOSS, making complex licensing and distribution models easy to understand.