A configurable file watcher that automatically recompiles and reruns Go applications when source code changes.
Rerun is a command-line tool that watches for changes in Go source files and automatically recompiles and restarts the application. It solves the repetitive task of manually stopping and restarting Go servers during development, enabling a smoother and faster workflow.
Go developers working on web servers, APIs, or any long-running applications who want immediate feedback on code changes without manual intervention.
Developers choose Rerun for its lightweight design, extensive configuration options (ignore patterns, file suffixes, CLI/JSON configs), and reliable cross-platform support, making it a versatile alternative to built-in Go tools like `air` or custom scripts.
Configurable recompiling and rerunning go apps when source changes
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Allows specifying exact files, directories, or wildcard patterns like '/some/other/**/*.go' to exclude, preventing unnecessary restarts for directories such as node_modules or vendor.
Supports configuration via CLI flags, JSON files, or a combination, with auto-loading from '.rerun.json' for convenience, as shown in the examples.
Works reliably on Linux, macOS, and Windows, with environment variable support (e.g., '$GOPATH' or '%GOPATH%') ensuring consistent behavior across OSes.
Compatible with Vagrant via the notify-forwarder plugin, enabling file watching in virtualized environments when using the '--attrib' flag.
Only designed for Go applications, lacking support for other languages, which limits utility in polyglot projects or those with mixed tech stacks.
Requires manual setup of ignore rules and suffixes via CLI or JSON, which can be cumbersome for simple projects compared to zero-config alternatives.
The '--test' flag runs tests but lacks advanced features like test filtering or coverage reports, making it less suitable for complex testing workflows.