inotify-tools
streams
| inotify-tools | streams | |
|---|---|---|
| 12 | 8 | |
| 3,397 | 1,407 | |
| 0.2% | 0.1% | |
| 1.5 | 4.7 | |
| 9 months ago | 20 days ago | |
| C++ | HTML | |
| GNU General Public License v3.0 only | GNU General Public License v3.0 or later |
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.
inotify-tools
-
Rewriting Rust
Note that entr doesn't recursively watch for file changes. It has a list of files it watches for changes, but this list isn't amended when new files are added. Fundamentally that's a fairly small subset of proper recursive file watching. A more comparable project in terms of just watching files is https://github.com/inotify-tools/inotify-tools.
-
Simple Directory Watcher to Restart Dev Server
Then I discovered inotify-tools and inside it inotifywait. This tool can do all kinds of file changes that I wanted. So now I only had to create a script which can run the specified command and also is able to kill the process and rerun the command.
- Suite for keeping track of file system changes
-
Ask r/kubernetes: What are you working on this week?
I've discovered inotify-tools and lsyncd as options and POC proves that it's possible to detect filesystem changes on a shared emptydir in a pod. Now it's just time to truly prove it out.
-
Here's the tool that automatically restarting your process when file changes in the selected directory
How's it different from inotify (or inotify-tools)?
- Using NFS in a distributed synchronous processing
-
I made a UNIX-style program to run commands every time a file is updated!
I use inotfy-tools within a makefile to watch my source tex files and retrigger a recompile while manuscripting.
-
How to add a cronjob that executes a command whenever an external device is plugged in, not base on time?
maybe this may help you: https://github.com/inotify-tools/inotify-tools/wiki
- Dear AWS - Please stop your VPN Client from fucking with my networking settings
-
Stop a container from another one
I've found a library which reacts to filesystem events (https://github.com/inotify-tools/inotify-tools/wiki) and I think it could be used for that.
streams
-
We deserve a better streams API for JavaScript
I don’t know how ReadableStream.tee() got specified to backpressure when the faster branch is not consumed, since this is the opposite of what nodejs does when multiple Writables attached via Readable.pipe() and also the opposite of what the requirements document (https://github.com/whatwg/streams/blob/e9355ce79925947e8eb49...) says: “letting the speed of the slowest output determine the speed of the tee”.
I like the idea of the more ergonomic, faster api in new-stream with no buffering except at Stream.push(). NodeJS and web streams put infinitely expandable queues at every ReadableStream and WritableStream so that you can synchronously res.write(chunk) as much as you want with abandon. This API basically forces you to use generators that yield instead of synchronously writing chunks.
-
Introducing our Next-Generation JavaScript SDK
StarlingMonkey is a JavaScript runtime we’ve built together with our friends at Fastly and contributed to the Bytecode Alliance. It’s built on top of SpiderMonkey in a highly modular way, making it easy to configure as needed for our use case. Crucially, it comes with an implementation of key web APIs that substantially improve compatibility with the web ecosystem, like the fetch API for handling outgoing HTTP requests, key parts of the Service Workers spec for handling incoming requests, streaming processing of request and response bodies using the web’s Streams API streamssetTimeout, and setInterval.
-
Rewriting Rust
Every single JS future is boxed. Moreover, they aren't just boxed, they are often backed by a hashmap (which may or may not be optimised away by the JIT). Elaborate allocation-free async is not an apple-to-apples comparison, that's my point.
JS does support concurrent execution, Promise.all is an example. Without it, JS async would make little sense. The problem very much exists there, and try-catch is only a surface-level answer. As you can see here [1], the interaction of cancellation and async in JS is at least just as (or more) complex than in Rust.
By the way, multithreading has little to do with Pin. I presume you're thinking of Send bounds.
"To work at all" is very dismissive. It's complex, but very well abstracted, well defined, and robust, that complexity is essential. Again, look at [1], JS async is hardly less complex, but also much more vague and ill-defined.
[1]: https://github.com/whatwg/streams/issues/1255
-
Backpressure explained – the resisted flow of data through software
Yup, this is what WHATWG's Streams spec[0] (linked in the article) says. It defines backpressure as a "process of normalizing flow from the original source according to how fast the chain can process chunks" where the reader "propagates a signal backwards through the pipe chain".
Mozilla's documentation[1] similarly defines backpressure as "the process by which a single stream or a pipe chain regulates the speed of reading/writing".
The article confuses backpressure (the signal used for regulation of the flow) with the reason backpressure is needed (producers and consumers working at different speeds). It should be fairly clear from the metaphor, I would have thought: With a pipe of unbounded size there is no pressure. The pressure builds up when consumer is slower than producer, which in turn slows down the producer. (Or the pipe explodes, or springs a leak and has to drop data on the ground.)
[0] https://streams.spec.whatwg.org/#pipe-chains
[1] https://developer.mozilla.org/en-US/docs/Web/API/Streams_API...
- Streams Standard
-
Streams and React Server Components
// https://streams.spec.whatwg.org/#example-transform-identity const { writable, readable } = new TransformStream(); fetch("...", { body: readable }).then(response => /* ... */); const writer = writable.getWriter(); writer.write(new Uint8Array([0x73, 0x74, 0x72, 0x65, 0x61, 0x6D, 0x73, 0x21])); // "streams!" writer.close();
- Goodbye, Node.js Buffer
-
Are you using generators?
// AudioWorkletStream // Stream audio from Worker to AudioWorklet // guest271314 2-24-2020 let port; onmessage = async e => { 'use strict'; if (!port) { [port] = e.ports; port.onmessage = event => postMessage(event.data); } const { urls } = e.data; // https://github.com/whatwg/streams/blob/master/transferable-streams-explainer.md const { readable, writable } = new TransformStream(); (async _ => { for await (const _ of (async function* stream() { while (urls.length) { yield (await fetch(urls.shift(), {cache: 'no-store'})).body.pipeTo(writable, { preventClose: !!urls.length, }); } })()); })(); port.postMessage( { readable, }, [readable] ); };
What are some alternatives?
fswatch - A cross-platform file change monitor with multiple backends: Apple macOS File System Events, *BSD kqueue, Solaris/Illumos File Events Notification, Linux inotify and fanotify, Microsoft Windows and a stat()-based backend.
proposal-zero-copy-arraybuffer-list - A proposal for zero-copy ArrayBuffer lists
systemd - The systemd System and Service Manager
falcon - Brushing and linking for big data
loxilb - eBPF based cloud-native load-balancer for Kubernetes|Edge|Telco|IoT|XaaS.
console - Console Standard