Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Checkout https://facebook.github.io/watchman/ and see if that's better than watchdog #11

Open
sungchun12 opened this issue Mar 22, 2023 · 0 comments
Assignees
Labels
help wanted Extra attention is needed

Comments

@sungchun12
Copy link
Owner

sungchun12 commented Mar 22, 2023

Watchman and Watchdog are both popular tools for detecting file modifications in a directory, but they have some differences in terms of performance, platform support, and implementation.
Watchman:
Developed and maintained by Facebook.
Written in C++, providing better performance in large projects.
Uses native operating system APIs for file system monitoring, making it highly efficient.
Supports Linux, macOS, Windows, and FreeBSD.
Requires installation of a separate service (the Watchman daemon) that runs in the background.
Comes with a command-line interface and JSON-based IPC protocol for integration with other tools.
Extensively used in large projects and by large organizations, indicating its reliability and stability.
Watchdog:
A Python library, which may not provide as good performance as Watchman, especially for large projects.
Cross-platform, supporting Linux, macOS, and Windows.
Uses native operating system APIs for file system monitoring where available (inotify on Linux, FSEvents on macOS, ReadDirectoryChangesW on Windows), and falls back to a polling-based approach when native APIs are not available.
Easier to integrate into Python applications, as it's a Python library.
No need to install or manage a separate service.
Might be less efficient and slower than Watchman when monitoring large directory trees.
In summary, Watchman tends to be more performant, especially for large projects, and it supports more platforms (including FreeBSD). However, Watchdog is easier to integrate into Python applications and doesn't require a separate service to be installed and managed. Both tools are platform-agnostic, but Watchman is generally considered more efficient and reliable in large-scale projects due to its lower-level implementation in C++ and its use of native operating system APIs for file system monitoring.

@sungchun12 sungchun12 converted this from a draft issue Mar 22, 2023
@sungchun12 sungchun12 self-assigned this Mar 22, 2023
@sungchun12 sungchun12 added the help wanted Extra attention is needed label Mar 22, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
help wanted Extra attention is needed
Development

No branches or pull requests

1 participant