WatchDog ist ein FileObserver Modul für Python – dieses arbeitet unter der Haube mit verschiedenen Systemschnittstellen und erlaubt so eine Unterstützung für verschiedenste Betriebssysteme. Es werden Windows, macOS (Darwin), FreeBSD, Linux unterstützt, des Weiteren gibt es, eine unabhängige Methode um auf Events zu horchen.
Folgende Systeme werden unter den unterschiedlichsten Betriebssystemen genutzt, um auf die Events zu hören: Unter Linux (2.6) wird das inotify-System eingesetzt, für das Hören auf Erstellen, Löschen und Ändern. Unter macOS wird das Framework FSEvents verwendet, das Dateisystemänderungen bereitstellt. Zusätzlich kommt unter macOS und FreeBSD noch kqueue zum Einsatz, diese ermöglicht das Überwachen von Änderungen im Dateisystem. Bei Windows wird die Funktion ReadDirectoryChangesW in Verbindung mit I/O-Completion-Ports verwendet, um Dateisystemänderungen zu überwachen. Dabei werden Threads zur Verarbeitung der Änderungen eingesetzt.
Zusätzlich da diese Technologien noch nicht ausreichen wird auch noch eine Methode unterstützt, bei der Verzeichnisschnappschüssen abgefragt werden und vergleichen werden, diese Methode ist allerdings langsam und wird von den Entwicklern nicht empfohlen.
Im Allgemeinen kann man sagen durch diese vielen Schnittstellen, die in diesem Modul implementiert wurden, ist es für einen Nutzer sehr einfach einen sicheren File Watcher zu implementieren und zu verwenden.