Open-Awesome
CategoriesAlternativesStacksSelf-HostedExplore
Open-Awesome

© 2026 Open-Awesome. Curated for the developer elite.

TermsPrivacyAboutGitHubRSS
  1. Home
  2. Elixir
  3. exsync

exsync

BSD-3-ClauseElixir

An Elixir reloader that automatically recompiles code when files change, supporting path dependencies and custom callbacks.

GitHubGitHub
170 stars31 forks0 contributors

What is exsync?

ExSync is an Elixir reloader that automatically recompiles code when files change during development. It monitors specified directories and file extensions, triggering recompilation without manual intervention, and supports custom callbacks after reloads.

Target Audience

Elixir developers working on applications who want to streamline their development workflow with automatic code reloading.

Value Proposition

Developers choose ExSync for its simplicity, support for path dependencies without extra configuration, and extensibility through reload callbacks, making it a flexible tool for enhancing productivity.

Overview

Yet another elixir reloader.

Use Cases

Best For

  • Elixir projects needing automatic recompilation during development
  • Applications using path dependencies that require seamless reloading
  • Teams wanting to reduce manual recompilation steps in their workflow
  • Developers needing customizable file monitoring with exclusion patterns
  • Projects requiring post-reload callbacks for custom logic
  • Umbrella applications where reloading across apps is beneficial

Not Ideal For

  • Production environments or deployment pipelines requiring automatic reloading
  • Projects using non-Elixir languages or build systems without mix integration
  • Teams preferring manual compilation for fine-grained control over build steps
  • Developers on systems lacking FileSystem dependencies (e.g., some containerized setups)

Pros & Cons

Pros

Automatic Recompilation

Monitors file changes and triggers recompilation automatically, eliminating manual steps during development, as highlighted in the README for streamlining workflows.

Path Dependency Support

Seamlessly recompiles :path dependencies without extra configuration, a key feature that simplifies working with local dependencies.

Highly Configurable Monitoring

Allows customization via extensions, exclusions with regex, and additional directories, offering flexibility for diverse project needs as shown in the config examples.

Extensible Callbacks

Supports MFA callbacks after recompilation, enabling custom logic integration, which enhances extensibility beyond basic reloading.

Cons

System Dependency Hurdles

Relies on the FileSystem library with platform-specific dependencies, which can complicate setup in environments where these are not readily available.

Development-Only Limitation

Designed solely for dev environments (via 'only: :dev' in deps), making it unsuitable for production or testing scenarios that might benefit from similar automation.

Configuration Overhead

Requires application environment configuration for basic settings like exclusions or callbacks, which might be verbose for simple use cases compared to more integrated tools.

Frequently Asked Questions

Quick Stats

Stars170
Forks31
Contributors0
Open Issues1
Last commit2 years ago
CreatedSince 2014

Tags

#elixir#code-reloading#productivity#mix-tasks#erlang#development-tools#file-watcher#hot-reload

Built With

E
Elixir
F
FileSystem

Included in

Elixir13.1k
Auto-fetched 17 hours ago

Related Projects

AtomVMAtomVM

Tiny Erlang VM

Stars2,178
Forks155
Last commit1 day ago
porcelainporcelain

Work with external processes like a boss

Stars958
Forks45
Last commit5 years ago
hammerhammer

An Elixir rate-limiter with pluggable backends

Stars919
Forks47
Last commit25 days ago
cubdbcubdb

Elixir embedded key/value database

Stars651
Forks33
Last commit1 year ago
Community-curated · Updated weekly · 100% open source

Found a gem we're missing?

Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.

Submit a projectStar on GitHub