native-messaging
txiki.js
native-messaging | txiki.js | |
---|---|---|
6 | 8 | |
47 | 2,337 | |
- | - | |
0.0 | 9.1 | |
11 months ago | 11 days ago | |
JavaScript | C | |
MIT License | MIT License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
native-messaging
-
JavaScript Standard Input/Output: Unspecified
// Bun Native Messaging host // guest271314, 10-9-2022 async function getMessage() { const { promise, resolve } = Promise.withResolvers(); // https://github.com/simov/native-messaging/blob/8e99d2a345ae94426a502d05aa5d57b966f6bc78/protocol.js let messageLength = 0, bytesWritten = 0, input = [];
-
How would you fix this Node.js bug?
Does not send messages from host to browser equal or to 65536 length.
-
How to read Node.js process.stdin without using process.stdin.on('readable', () => {})?
In Node.js this code https://github.com/simov/native-messaging/blob/master/protocol.js does this
-
process.stdin.read() without using process.stdin.on('readable', ()=.{})
https://github.com/simov/native-messaging/blob/master/nodejs/example.js#:~:text=Raw,Footer
-
Node.js in Chrome extension
Yes. You can utilize Native Messaging. See https://github.com/simov/native-messaging.
-
Why does RSS constantly grow when reading data from a child process and calling process.stdout.write()?
// Node.js Native Messaging host // https://github.com/simov/native-messaging/blob/master/protocol.js // https://github.com/simov/native-messaging/blob/master/nodejs/example.js // Might be good to use an explicit path to node on the shebang line // in case it isn't in PATH when launched by Chrome process.stdin.on('readable', () => { let input = []; let chunk; while ((chunk = process.stdin.read())) { input.push(chunk); } input = Buffer.concat(input); const msgLen = input.readUInt32LE(0); const dataLen = msgLen + 4; if (input.length >= dataLen) { const content = input.slice(4, dataLen); const json = JSON.parse(content.toString()); handleMessage(json); } });
txiki.js
-
A list of JavaScript engines, runtimes, interpreters
txiki.js
-
JavaScript Standard Input/Output: Unspecified
// https://github.com/denoland/deno/discussions/17236#discussioncomment-4566134 // https://github.com/saghul/txiki.js/blob/master/src/js/core/tjs/eval-stdin.js async function readFullAsync(length, buffer = new Uint8Array(65536)) { const data = []; while (data.length < length) { const input = await open("/dev/stdin"); let { bytesRead } = await input.read({ buffer }); await input.close(); if (bytesRead === 0) { break; } data.push(...buffer.subarray(0, bytesRead)); } return new Uint8Array(data); }
- Node.js fetch() vs. Deno fetch(): Implementation details...
-
How to compile serveTls for import into QuickJS?
I've only dabbled with the shared libraries once, with the help of the owner of the lnked repository. I wound up solving the issue adjusting the code I was working on https://github.com/saghul/txiki.js/issues/294.
-
C++ to C string concatenation
I have written the same code in C++ https://github.com/guest271314/captureSystemAudio/blob/master/native_messaging/capture_system_audio/capture_system_audio.cpp, Python https://github.com/guest271314/captureSystemAudio/blob/master/native_messaging/capture_system_audio/capture_system_audio.py, and QuickJS (C source code) https://github.com/saghul/txiki.js/issues/294. QuickJS is the only implementation that winds up clipping the end of real-time audio capture.
-
QuickJS JavaScript Engine – Fabrice Bellard
QuickJS is awesome, simple to use and very easy to integrate.
Over the past few years I slowly built a small JS runtime using QuickJS as the engine and libuv as the platform layer, amongst other things, in case anyone wants to take a look: https://github.com/saghul/txiki.js
- GitHub - saghul/txiki.js: The tiny JavaScript runtime built with QuickJS, libuv
- GitHub - saghul/txiki.js: The tiny JavaScript runtime built with QuickJS, libuv and ❤️
What are some alternatives?
better-onetab - :bookmark_tabs: A better OneTab for Chrome :memo: Temporarily removed from firefox :construction: V2 is WIP
v8go - Execute JavaScript from Go
node - Node.js JavaScript runtime ✨🐢🚀✨
engine262 - An implementation of ECMA-262 in JavaScript
firefox-mute-site - Firefox extension that allows to instantly mute/unmute all tabs from a website
javascript-algorithms - 📝 Algorithms and data structures implemented in JavaScript with explanations and links to further readings
omni - The all-in-one tool to supercharge your productivity ⌨️
AudioWorkletStream - fetch() => ReadableStream => AudioWorklet
markdown-viewer - Markdown Viewer / Browser Extension
proposal-common-minimum-api
node-v0.x-archive - Moved to https://github.com/nodejs/node
rayjs - Javascript bindings for raylib in a single ~3mb executable