PackageTrack
Sign in Get early access

watcher

A file system watcher. It monitors changes to contents of directories and sends notifications when files have been added, removed, or modified.

1.2.1 12M downloads/mo #11 most downloaded on pub.dev dart-lang/tools

What this package is like to depend on

Last release 7 months ago

08 Jan 2026

Release timing varies

gaps range from 3 weeks to 1.6 years

Some releases are documented

notes for 27 of 68 stable releases

Nothing withdrawn

no release was ever pulled

13 years old

70 releases · first in 2013

3 releases in the last 12 months

see the full history below

Release timeline

70 releases · Jul 2013 to Jan 2026
2014 2016 2018 2020 2022 2024 2026
Release Pre-release

Releases

latest 60 of 70
  1. 1.2.1 08 Jan 2026
    Release notes
    • Bug fix: versions before 1.2.0 would allow and ignore a trailing path separator passed to DirectoryWatcher or FileWatcher constructors, restore that behavior.
    • In paths passed to DirectoryWatcher or FileWatcher constructors, remove multiple adjacent separators and . and .., so they will not be returned in events.
    • Bug fix: on Mac, stop issuing assert(false) when a modifyDirectory event is ignored, so the unused events are silently ignored instead of throwing in debug builds.
    Open source →
  2. 1.2.0 12 Dec 2025
    Release notes
    • Polling watchers now check file sizes as well as "last modified" times, so they are less likely to miss changes on platforms with low resolution timestamps.
    • DirectoryWatcher on Windows performance: reduce 100ms buffering of events before reporting to 5ms, the larger buffer isn't needed for correctness after the various fixes.
    • DirectoryWatcher on Windows watches in a separate Isolate to make buffer exhaustion, "Directory watcher closed unexpectedly", much less likely. The old implementation which does not use a separate Isolate is available as DirectoryWatcher(path, runInIsolateOnWindows: false).
    • DirectoryWatcher on Windows: if buffer exhaustion does happen, emit a "modify" event for all know files instead of an exception.
    • Document behavior on Linux if the system watcher limit is hit.
    • Require Dart SDK ^3.4.0.
    • Bug fix: native DirectoryWatcher implementations now consistently handle links as files, instead of sometimes reading through them and sometimes reporting them as files. The polling DirectoryWatcher still reads through links.
    • Bug fix: with the polling DirectoryWatcher, fix spurious modify event emitted because of a file delete during polling.
    • Bug fix: due to the link handling change, native DirectoryWatcher on Linux and MacOS is no longer affected by a severe performance regression if there are symlink loops in the watched directory. The polling DirectoryWatcher is fixed to skip already-visited directories to prevent the performance issue while still reading through links.
    • Bug fix: with DirectoryWatcher on Windows, the last of a rapid sequence of modifications in a newly-created directory was sometimes dropped. Make it reliably report the last modification.
    • Bug fix: with DirectoryWatcher on Windows, a move over an existing file was reported incorrectly. For example, if a and b already exist, then a is moved onto b, it would be reported as three events: delete a, delete b, create b. Now it's reported as two events: delete a, modify b. This matches the behavior of the Linux and MacOS watchers.
    • Bug fix: with DirectoryWatcher on Windows, new links to directories were sometimes incorrectly handled as actual directories. Now they are reported as files, matching the behavior of the Linux and MacOS watchers.
    • Bug fix: unify DirectoryWatcher implementation on Windows with the MacOS implementation, addressing various race conditions around directory renames.
    • Bug fix: new DirectoryWatcher implementation on Linux that fixes various issues: tracking failure following subdirectory move, incorrect events when there are changes in a recently-moved subdirectory, incorrect events due to various situations involving subdirectory moves.
    • Bug fix: new DirectoryWatcher implementation on MacOS that fixes various issues including duplicate events for changes in new directories, incorrect events when close together directory renames have overlapping names.
    • Bug fix: with FileWatcher on MacOS, a modify event was sometimes reported if the file was created immediately before the watcher was created. Now, if the file exists when the watcher is created then this modify event is not sent. This matches the Linux native and polling (Windows) watchers.
    Open source →
  3. 1.1.4 02 Oct 2025
    Release notes
    • Improve handling of subdirectories: ignore PathNotFoundException due to subdirectory deletion racing with watcher internals, instead of raising it on the event stream.
    • Improve handling of watcher overflow on Windows: prepare for future versions of SDK, which will properly forward FileSystemException into the stream returned by the watcher.
    Open source →
  4. 1.1.3 25 Aug 2025
    Release notes
    • Improve handling of FileSystemException: Directory watcher closed unexpectedly on Windows. The watcher was already attempting to restart after this error and resume sending events. But, the restart would sometimes silently fail. Now, it is more reliable.
    • Improving handling of directories that are created then immediately deleted on Windows. Previously, that could cause a PathNotFoundException to be thrown.
    Open source →
  5. 1.1.2 11 Jun 2025
    Release notes
    • Fix a bug on Windows where a file creation event could be reported twice when creating a file recursively in a non-existent directory.
    Open source →
  6. 1.1.1 17 Dec 2024
    Release notes
    • Ensure PollingFileWatcher.ready completes for files that do not exist.
    • Require Dart SDK ^3.1.0
    • Move to dart-lang/tools monorepo.
    Open source →
  7. 1.1.0 12 May 2023
    Release notes
    • Require Dart SDK >= 3.0.0
    • Remove usage of redundant ConstructableFileSystemEvent classes.
    Open source →
  8. 1.0.2 14 Oct 2022
    Release notes
    • Require Dart SDK >= 2.14
    • Ensure DirectoryWatcher.ready completes even when errors occur that close the watcher.
    • Add markdown badges to the readme.
    Open source →
  9. 1.0.1 30 Sep 2021
    Release notes
    • Drop package:pedantic and use package:lints instead.
    Open source →
  10. 1.0.0 05 Feb 2021
    Release notes
    • Require Dart SDK >= 2.12
    • Add the ability to create custom Watcher types for specific file paths.
    Open source →
  11. 1.0.0-nullsafety.0 13 Jan 2021 pre-release

    Nothing published for this version

  12. 0.9.7 16 Jul 2015
    Release notes
    • Fix a bug in FileWatcher where events could be added after watchers were closed.
    Open source →
  13. 0.9.7+2 03 May 2016
    Release notes
    • Narrow the constraint on async to reflect the APIs this package is actually using.
    Open source →
  14. 0.9.7+3 10 Aug 2016
    Release notes
    • Fix a crashing bug on Linux.
    Open source →
  15. 0.9.7+4 21 Sep 2017
    Release notes
    • Declare support for async 2.0.0.
    Open source →
  16. 0.9.7+6 05 Jan 2018
    Release notes
    • Internal changes only, namely removing dep on scheduled test.
    Open source →
  17. 0.9.7+7 01 Feb 2018
    Release notes
    • Updates to support Dart 2.0 core library changes (wave 2.2). See issue 31847 for details.

    Open source →
  18. 0.9.7+8 23 May 2018
    Release notes
    • Fix Dart 2.0 type issues on Mac and Windows.
    Open source →
  19. 0.9.7+9 25 Jun 2018
    Release notes
    • Internal changes only.
    Open source →
  20. 0.9.7+10 18 Jul 2018
    Release notes
    • Set max SDK version to <3.0.0, and adjust other dependencies.
    Open source →
  21. 0.9.7+12 12 Jul 2019
    Release notes
    • Catch FileSystemException during existsSync() on Windows.
    • Internal cleanup.
    Open source →
  22. 0.9.7+13 21 Nov 2019
    Release notes
    • Catch & forward FileSystemException from unexpectedly closed file watchers on windows; the watcher will also be automatically restarted when this occurs.
    Open source →
  23. 0.9.7+14 06 Mar 2020
    Release notes
    • Prepare for breaking change in SDK where modified times for not found files becomes meaningless instead of null.
    Open source →
  24. 0.9.7+15 22 Apr 2020
    Release notes
    • Fix a bug on Mac where modifying a directory with a path exactly matching a prefix of a modified file would suppress change events for that file.
    Open source →
  25. 0.9.6 12 Jun 2015
    Release notes
    • Add a Watcher interface that encompasses watching both files and directories.

    • Add FileWatcher and PollingFileWatcher classes for watching changes to individual files.

    • Deprecate DirectoryWatcher.directory. Use DirectoryWatcher.path instead.

    Open source →
  26. 0.9.5 10 Mar 2015
    Release notes
    • Fix bugs where events could be added after watchers were closed.
    Open source →
  27. 0.9.4 22 Jan 2015
    Release notes
    • Treat add events for known files as modifications instead of discarding them on Mac OS.
    Open source →
  28. 0.9.3 04 Aug 2014
    Release notes
    • Improved support for Windows via WindowsDirectoryWatcher.

    • Simplified PollingDirectoryWatcher.

    • Fixed bugs in MacOSDirectoryWatcher

    Open source →
  29. 0.9.3-dev 04 Aug 2014 pre-release

    Nothing published for this version

  30. 0.9.2 10 Dec 2013

    Nothing published for this version

  31. 0.9.1 09 Dec 2013

    Nothing published for this version

  32. 0.9.0 06 Nov 2013

    Nothing published for this version

  33. 0.8.10 01 Nov 2013

    Nothing published for this version

  34. 0.8.10+3 04 Nov 2013

    Nothing published for this version

  35. 0.8.10+4 05 Nov 2013

    Nothing published for this version

  36. 0.8.9 31 Oct 2013

    Nothing published for this version

  37. 0.8.8 30 Oct 2013

    Nothing published for this version

  38. 0.8.7 28 Oct 2013

    Nothing published for this version

  39. 0.8.6 24 Oct 2013

    Nothing published for this version

  40. 0.8.5 21 Oct 2013

    Nothing published for this version

  41. 0.8.4 19 Oct 2013

    Nothing published for this version

  42. 0.8.3 17 Oct 2013

    Nothing published for this version

  43. 0.8.2 14 Oct 2013

    Nothing published for this version

  44. 0.8.1 04 Oct 2013

    Nothing published for this version

  45. 0.8.0 03 Oct 2013

    Nothing published for this version

  46. 0.7.6 27 Sep 2013

    Nothing published for this version

  47. 0.7.6+4 01 Oct 2013

    Nothing published for this version

  48. 0.7.5 21 Sep 2013

    Nothing published for this version

  49. 0.7.4 18 Sep 2013

    Nothing published for this version

  50. 0.7.3+1 16 Sep 2013

    Nothing published for this version

  51. 0.7.2 06 Sep 2013

    Nothing published for this version

  52. 0.7.2+1 08 Sep 2013

    Nothing published for this version

  53. 0.7.1 03 Sep 2013

    Nothing published for this version

  54. 0.7.0 28 Aug 2013

    Nothing published for this version

  55. 0.6.21+3 26 Aug 2013

    Nothing published for this version

  56. 0.6.20+1 22 Aug 2013

    Nothing published for this version

  57. 0.6.19 19 Aug 2013

    Nothing published for this version

  58. 0.6.17 10 Aug 2013

    Nothing published for this version

  59. 0.6.17+2 12 Aug 2013

    Nothing published for this version

  60. 0.6.15+2 05 Aug 2013

    Nothing published for this version

Every package, every release, already written down.

The archive is open and free. Watching your own project is what we are building next.

Browse the archive