NOTE: this manual is a work in progress. Please let us know if you think something is missing by filing an issue, or join our Discord server.

Caramel works on macOS, Linux, and Windows. It is a single binary, and it has no external dependencies.

The only prerequisite to run the code you compile with Caramel, is Erlang or Elixir. The Elixir installation page lists many ways to install it comfortably, we suggest you to follow that step before continuing.

Manual binary installation

You can manuall install Caramel as well on Windows, macOS, or Linux by downloading the zipped release from Github: github.com/AbstractMachines/caramel/releases.

Using a package manager

NOTE: we are working on supporting these plugins but we could use a hand with them. If you're interested in contributing please join us on Discord


If you are an Elixir programmer, Caramel can be installed with mix, include the mix plugin in your project as a dependency and enable the compiler:

def project do
  [
    ...
    compilers: [:caramel] ++ Mix.compilers(),
    caramel_paths: ["src"],
    caramel_release: "v0.1.1"
  ]
end

defp deps do
  {:mix_caramel, github: "AbstractMachinesLab/mix_caramel", branch: :main}
end

If you are an Erlang programmer, Caramel can be installed with rebar3, but we are still working out the plugin. If you're interested in helping out please reach us out in Discord!

{plugins, [
  {rebar3_caramel, {git, "https://github.com/AbstractMachinesLab/rebar3_caramel.git", {branch, "main"}}}
]}.

Other platforms. If you'd like Caramel to be easier to install in your favorite platform, feel free to Open a Github Issue and we can talk about making it happen.

Install from Sources

Check the Building from Source section for up to date instructions.

If you have OCaml (opam) and the source code of Caramel, you can install it by running make install.