Write Elixir code using statically-typed Elm-like syntax (compatible with Elm tooling)
See the code
npm install -g elchemy
Elchemy lets you write simple, fast and quality type safe code while leveraging both the Elm's safety and Elixir's ecosystem
npm install -g [email protected])Install elchemy globally with:
npm install -g elchemy
Then, in the root directory of your project do:
elchemy init
And follow the instructions.
elchemy will find all *.elm files specified in elchemy_path and compile it into corresponding *.ex files in lib directory.
You can override output directory specifying elixirc_paths.
npm install -g elchemy
Usage
elchemy compile source_dir output_dir
git clone https://github.com/wende/elchemy.git
cd elchemy
make compile
./elchemy compile source_dir output_dir
and
make dev
In order to launch and test the web demo.
If something doesn't work, try
npm install -g elchemy
elchemy clean
elchemy init
mix test
first
add b c = b + c over defp add(a, b), do: b + cYou can, but nice and dandy compile tools are still on their way
The output files of Elchemy treat the code readability as a first class citizen. The code is meant to be properly indented, the comments aren't omitted, and the code is optimized as hard as it can ( f.i case clauses reduce to function overloads)
Once it's done, so as it is supposed to be in the so called semantic versioning. 😇
Definitely. Yes. Please do. 💕
You're a nosy one, aren't you? 😄 Elchemy represents all type constructors as snake cased atoms, and all type applications as tuples. Which means that MyType 42 "Forty two" Error in Elchemy equals to {:my_type, 42, "Forty Two", :error} in Elixir.
As long as they don't use any Native modules, Ports or Elm runtime they can be safely imported and used
Yes. You can do an ffi call to any function in any module. Whether it's Elixir module, Erlang module, or even a macro you can include it in your code. Ffi calls are a treated specially in Elchemy, and they get generated test to analyze the types based on @specs, so that you don't compromise type safety for using Elixir code.
In order to increase readability it's advised not to use ffi calls if not necessary and always document and doctest them.
use Module?Unfortunately you can't write any macros with do..end blocks yet. You can write any out of function code using an elixir inline code with:
{- ex
*code_here*
-}
But it is a last resort solution and shouldn't ever be abused.
So you want to write an Elm-like code, that will manipulate Elixir code, which generates an Elixir code that manipulates Elixir code? How about no?
.elm files with Elchemy?Elchemy uses Elm to typecheck your program. It is possible to use it without Elm on your machine, while it's not advised.
Overall
Maintained
Code review
npm
Latest release
Releases this year
(top 24 of 32)
501 followers · starred Jul 2021
818 followers · starred Feb 2018
164 followers · starred Apr 2019
498 followers · starred May 2020
Write Elixir code using statically-typed Elm-like syntax (compatible with Elm tooling)
See the code
npm install -g elchemy
Elchemy lets you write simple, fast and quality type safe code while leveraging both the Elm's safety and Elixir's ecosystem
npm install -g [email protected])Install elchemy globally with:
npm install -g elchemy
Then, in the root directory of your project do:
elchemy init
And follow the instructions.
elchemy will find all *.elm files specified in elchemy_path and compile it into corresponding *.ex files in lib directory.
You can override output directory specifying elixirc_paths.
npm install -g elchemy
Usage
elchemy compile source_dir output_dir
git clone https://github.com/wende/elchemy.git
cd elchemy
make compile
./elchemy compile source_dir output_dir
and
make dev
In order to launch and test the web demo.
If something doesn't work, try
npm install -g elchemy
elchemy clean
elchemy init
mix test
first
add b c = b + c over defp add(a, b), do: b + cYou can, but nice and dandy compile tools are still on their way
The output files of Elchemy treat the code readability as a first class citizen. The code is meant to be properly indented, the comments aren't omitted, and the code is optimized as hard as it can ( f.i case clauses reduce to function overloads)
Once it's done, so as it is supposed to be in the so called semantic versioning. 😇
Definitely. Yes. Please do. 💕
You're a nosy one, aren't you? 😄 Elchemy represents all type constructors as snake cased atoms, and all type applications as tuples. Which means that MyType 42 "Forty two" Error in Elchemy equals to {:my_type, 42, "Forty Two", :error} in Elixir.
As long as they don't use any Native modules, Ports or Elm runtime they can be safely imported and used
Yes. You can do an ffi call to any function in any module. Whether it's Elixir module, Erlang module, or even a macro you can include it in your code. Ffi calls are a treated specially in Elchemy, and they get generated test to analyze the types based on @specs, so that you don't compromise type safety for using Elixir code.
In order to increase readability it's advised not to use ffi calls if not necessary and always document and doctest them.
use Module?Unfortunately you can't write any macros with do..end blocks yet. You can write any out of function code using an elixir inline code with:
{- ex
*code_here*
-}
But it is a last resort solution and shouldn't ever be abused.
So you want to write an Elm-like code, that will manipulate Elixir code, which generates an Elixir code that manipulates Elixir code? How about no?
.elm files with Elchemy?Elchemy uses Elm to typecheck your program. It is possible to use it without Elm on your machine, while it's not advised.
Overall
Maintained
Code review
npm
Latest release
Releases this year
(top 24 of 32)
501 followers · starred Jul 2021
818 followers · starred Feb 2018
164 followers · starred Apr 2019
498 followers · starred May 2020