Mix

What Mix is
Mix is a free, open-source build tool for creating, compiling, testing, and managing Elixir projects. It handles Hex packages, Git dependencies, local path dependencies, Rebar3 projects, and Make projects. Dependency resolution, lockfiles, workspaces, private-registry authentication, and offline installation are supported. Standard environments are development, test, and production, while compilation targets can build for different architectures with the host as the default. Core tasks include `mix compile`, `mix test`, and `mix run`, and projects can add custom command-line tasks. Mix also includes a release task for assembling deployable application releases. Installation guidance covers macOS, GNU/Linux, BSD, and Windows; listed supported platforms include FreeBSD and OpenBSD. Mix and Hex use operating-system certificates for downloads, with documented alternate certificate-authority configuration. Elixir v1.20.4 requires Erlang 27.0 or later. José Valim created Elixir in 2012, and the Elixir Team maintains its source.
Who it suits
Mix is intended for Elixir developers who need project creation, compilation, testing, dependency management, and release tasks. It fits workflows requiring lockfiles, workspaces, private registries, or offline installation.
What it does well
- Manages multiple dependency types
- Provides dependency resolution and lockfiles
- Supports custom command-line tasks
- Includes testing and release tasks
- Works across macOS, GNU/Linux, BSD, and Windows
What to know first
- Elixir v1.20.4 requires Erlang 27.0 or later
- Primarily designed for Elixir projects
- Offline installation still depends on available packages
Verdict
Mix covers the main build, test, dependency, and release tasks in Elixir development. Its broad platform and dependency support make it useful for varied project setups.
Facts from Mix's own pages
- Build environments
- Mix provides `:dev`, `:test`, and `:prod` environments by default. · mix.hexdocs.pm, 11 Oct 2026
- Build targets
- Mix supports targets for compiling projects for different architectures. · mix.hexdocs.pm, 10 Oct 2026
- Compile
- `mix compile` runs the project's registered compilers and checks that dependencies are compiled and the project is up to date. · mix.hexdocs.pm, 11 Oct 2026
- Cross compilation
- Mix supports compilation targets, with `:host` as the default target. · mix.hexdocs.pm, 11 Oct 2026
- Default tasks
- Mix provides command-line tasks including `mix compile`, `mix test`, and `mix run`. · mix.hexdocs.pm, 10 Oct 2026
- Dependencies
- Mix manages dependencies and integrates with the Hex package manager. · mix.hexdocs.pm, 10 Oct 2026
- Dependency integration
- Mix manages project dependencies and integrates with the Hex package manager. · mix.hexdocs.pm, 11 Oct 2026
- Dependency resolution
- Yes · mix.hexdocs.pm, 22 Sept 2026
- Environments
- Mix provides `:dev`, `:test`, and `:prod` environments by default. · mix.hexdocs.pm, 10 Oct 2026
- Extensibility
- Projects can add custom Mix tasks that are invoked from the command line. · mix.hexdocs.pm, 10 Oct 2026
- Extensible tasks
- Projects can add custom Mix tasks that users invoke from the command line. · mix.hexdocs.pm, 11 Oct 2026
- Install requirement
- Elixir v1.20.4 requires Erlang 27.0 or later. · elixir-lang.org, 11 Oct 2026
- License
- The Elixir source code is under the Apache 2 License. · elixir-lang.org, 11 Oct 2026
- Lockfile support
- Yes · mix.hexdocs.pm, 22 Sept 2026
- Maker and history
- José Valim created Elixir in 2012, and the Elixir Team maintains its source code. · elixir-lang.org, 11 Oct 2026
- Offline installation
- Yes · mix.hexdocs.pm, 22 Sept 2026
- Package formats
- Hex packages,Git dependencies,local path dependencies,Rebar3 projects,Make projects · mix.hexdocs.pm, 22 Sept 2026
- Private registry auth
- Yes · mix.hexdocs.pm, 22 Sept 2026
- Project setup
- The documentation recommends starting a project with `mix new my_project`. · mix.hexdocs.pm, 11 Oct 2026
- Purpose
- Mix is a build tool for creating, compiling, and testing Elixir projects and managing their dependencies. · mix.hexdocs.pm, 10 Oct 2026
- Release
- Mix includes a task for assembling releases that can be deployed to production. · mix.hexdocs.pm, 11 Oct 2026
- Release packaging
- Mix includes a release task for assembling an application release. · mix.hexdocs.pm, 10 Oct 2026
- Security configuration
- Mix and Hex use the operating system's default certificates for downloads, and Mix documents how to configure alternate CA certificates. · mix.hexdocs.pm, 11 Oct 2026
- Supported installation systems
- Elixir installation instructions cover macOS, GNU/Linux, BSD, and Windows. · elixir-lang.org, 11 Oct 2026
Where Mix stands on Freedom251
- Package Managers#45 of 93
