Charms

May 15, 2025 ยท View on GitHub

Run in Livebook

Charms

Package Documentation

Charms is an Elixir compiler that compiles a subset of Elixir to optimized native code using MLIR. It enables writing performance-critical Elixir code that gets compiled to efficient native binaries while maintaining Elixir's syntax and development workflow.

Features

  • defm to define native functions, some examples

  • Multi-threaded compilation, built upon Elixir processes and MLIR's multi-threaded capabilities

  • SIMD support

  • SIMT support

Installation

If available in Hex, the package can be installed by adding charms to your list of dependencies in mix.exs:

def deps do
  [
    {:charms, "~> 0.1.0"}
  ]
end

Development

To run the benchmarks:

mix run bench/sort_benchmark.exs
mix run bench/list_add_benchmark.exs