notify
🔠Cross-platform filesystem notification library for Rust. (by notify-rs)
Clippy
A bunch of lints to catch common mistakes and improve your Rust code. Book: https://doc.rust-lang.org/clippy/ (by rust-lang)
Our great sponsors
notify | Clippy | |
---|---|---|
10 | 120 | |
2,505 | 10,755 | |
3.4% | 1.9% | |
8.0 | 10.0 | |
12 days ago | 1 day ago | |
Rust | Rust | |
GNU General Public License v3.0 or later | GNU General Public License v3.0 or later |
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
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.
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.
notify
Posts with mentions or reviews of notify.
We have used some of these posts to build our list of alternatives
and similar projects. The last one was on 2023-05-04.
-
Needing Additional Inputs on an Implementation of an Asset Manager with Hot Reloading Support
To support hot reloading, the asset manager definitely has to have some watcher thread, but I have that part dealt with already since I have decided to utilize notify. The other half is to find a way to reload all assets that have changes as determined by the watcher thread. What I am not sure about is how to implement this in a Rustic fashion and with clean architecture while also considering the fact that asset pointers may be held by other objects (such as an object representing an OpenGL program object).
-
FIM v0.4.6 - Realtime File monitoring tool
It is a great question. We have based the development on a library called notify, kudos to https://github.com/notify-rs/notify. This library adds a layer of abstraction to each system. It implements kernel-specific hooks as you mentioned. In some cases like Audit extended data, we have developed an integration that detects changes on the Audit log file and processes the given information including a lot of information into Linux systems. We have plans to include it in Windows as well.
-
Building a static site generator in 100 lines of Rust
In order to detect files changes, we use hotwatch, a simple wrapper over notify that will allow us to save a few lines.
- Let Rust detect changes in the Markdown file and generate HTML.
-
Track what process modify file
The notify crate uses the inotify API on Linux. However, it's probably not what you want, since one of its limitations is:
-
Hey Rustaceans! Got an easy question? Ask here (48/2021)!
If you want to build this yourself, you'll want to build on something like notify - there are libraries like linemux built on top of it that will do a lot of this for you too.
-
Async file watcher, like notify-rs
Hey rust community, I'm currently writing a small app using Tokio, but running into a problem when trying to add a file watcher to it. I looked into available crates and found https://github.com/notify-rs/notify to be a good option, though it only exposes a sync interface.
-
Effectively monitoring very large number of files
I'm most well versed in Python so I started with that and eventually ended up with a POC using watchdog, but the program took more than a day and a half to traverse everything and register all of the watches. I've been trying to learn Rust for a while, and decided to perhaps use this as an excuse to try something 'real' and not just a learning exercise. I found the notify crate (https://github.com/notify-rs/notify) and basically copied their example listed on their GitHub, but even this takes about 16-18 hours to place all the watches before it starts processing events. I did not see any obvious ways to enable asynchronous or async/await code in notify, so I don't know of a way to parallelize the disk I/O with this approach.
-
Proper way of reading a constantly mutating file?
The notify crate is probably what you're looking for. It uses inotify on linux by default.
- Notify: Cross-platform filesystem notification library for Rust
Clippy
Posts with mentions or reviews of Clippy.
We have used some of these posts to build our list of alternatives
and similar projects. The last one was on 2023-07-10.
-
More than you've ever wanted to know about errors in Rust
I couldn't find it in the API guidelines either. From what I understand, the idea is that any trait bounds, which includes generic type parameter bounds and lifetime bound on a type (struct or enum) would be repeated back in the impl block
there is a nice discussion on this issue here: https://github.com/rust-lang/rust-clippy/issues/1689
-
New clippy lint: detecting `&mut` which could be `&` in function arguments
You should not blindly follow clippy lints. They are sometimes wrong. Another example https://github.com/rust-lang/rust-clippy/issues/9782 .
- Let else will finally be formatted by rustfmt soon
-
My deduplication solution written in Rust beats everything else: casync, borg...
I often write () = f() to assert that f() is unit. Unfortunately clippy warns on such code ( https://github.com/rust-lang/rust-clippy/issues/9048 ). There are very recent pull requests for this bug, so hopefully this bug will be fixed very soon. But meanwhile I invented this workaround: [()] = [f()] :)
-
Any open source projects willing to take in juniors?
Apart from running clippy on many projects being essential, clippy is also an exceptionally welcoming project, no matter your prior knowledge.
-
Any new Opensource projects in (rust) looking for contributors. I want to start my journey as an OSS contributor.
clippy is a great place to get started :) though it isn't exactly new.
-
I want to contribute in a big project
clippy is also pretty compiler-adjacent and unlike rust-analyzer uses rustc's internal APIs. Don't let the size of the code base scare you off! It's actually feasible for a newcomer to contribute even such a substantial change as a new lint, and we have issues labeled as "good first issue" that come with mentorship, so you don't need to go it alone.
-
rustc-plugin: A framework for writing plugins that integrate with the Rust compiler
Yes, you could use it to write a lint. Although you might find it easier to just fork Clippy and add your own lints to their existing framework.
-
Reading Rust
Check out the readme for more information.
-
Rust Tips and Tricks #PartOne
They are two of my favorite Rust tools. If you haven’t tried them yet, I highly recommend giving them a try. Clippy can detect various lints in your code and guide you towards writing more idiomatic code. To install Clippy, simply run rustup component add clippy, and to run it within your workspace, execute cargo clippy. For more details, visit Clippy’s GitHub repository.
What are some alternatives?
When comparing notify and Clippy you can also consider the following projects:
rust-fuse - Rust library for filesystems in userspace (FUSE)
rustfmt - Format Rust code
fd - A simple, fast and user-friendly alternative to 'find'
vscode-rust
linemux - Asynchronous tailing library in Rust
rust.vim - Vim configuration for Rust.
redbpf - Rust library for building and running BPF/eBPF modules
rust-analyzer - A Rust compiler front-end for IDEs [Moved to: https://github.com/rust-lang/rust-analyzer]
path_abs - ergonomic paths and files in rust
Rust for Visual Studio Code
dutree - a tool to analyze file system usage written in Rust
intellij-rust - Rust plugin for the IntelliJ Platform