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.
-
defmto define native functions, some examples -
Multi-threaded compilation, built upon Elixir processes and MLIR's multi-threaded capabilities
-
SIMD support
-
SIMT support
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"}
]
endTo run the benchmarks:
mix run bench/sort_benchmark.exs
mix run bench/list_add_benchmark.exs