Project: Elixir

Andrea Leopardi edited this page Mar 5, 2018 · 47 revisions
  • Website:
  • Responsible: José Valim, Andrea Leopardi, Michał Muskała
  • If you have any questions, send an e-mail to beam-community AT googlegroups DOT com

Ideas are listed in no particular order. Students providing their own ideas are also welcome!

Idea #1: Typespecs to StreamData generators

StreamData is a library that adds data generation and property-based testing to Elixir. The goal of this project is to read @type declarations from BEAM code and automatically get generators out of them. Once that is done, we should use this information to automatically validate @spec annotations with data generators.

Expected results: An API that builds generators from types and another that validates specs

Knowledge prerequisites: Intermediate Elixir

Possible Mentors: José Valim, Andrea Leopardi

Idea #2: A new MySQL driver for Ecto

Ecto is a language integrated query and database mapper for Elixir. While it currently has an adapter for MySQL leveraging mariaex, we believe the community would benefit from a new driver that is closer in design to Postgrex. We are particularly interested on students who are an active part of the Elixir community and are interested on working with Ecto in the long term.

Expected results: A working version of the new MySQL driver with Ecto

Knowledge prerequisites: Intermediate Elixir

Possible Mentors: José Valim, Michał Muskała, James Fish

Idea #3: Improve ElixirBench

ElixirBench is a proof of concept for a comprehensive tool for the Elixir community to monitor performance of Elixir itself and the core libraries. The goal is to have a platform for running continuous benchmarks for various Elixir-based projects to guard from regressions and encourage performance improvements. The project requires two things: improvements to the platform itself (particularly a GitHub integration) and writing some actual benchmarks for different projects - standard library and the elixir compiler being the most important elements and things like Ecto and Plug and possibly some other projects as stretch goals.

Expected results: The ElixirBench platform running benchmarks for selected projects nightly

Knowledge prerequisites: Basic React and basic Elixir

Possible mentors: Michał Muskała

Idea #4: Add dialyzer task to Elixir

Dialyzer is a discrepancy analyzer that ships as part of the Erlang VM. There are two projects that adds Dialyzer support to Elixir applications: dialyxir and dialyzex. The goal of this project is to bring the ideas of both projects with two main new features: better usability (in particular, better error messages and formatting) and the ability to dialyze projects incrementally.

Expected results: A mix dialyzer task as part of Elixir

Knowledge prerequisites: Experience with Elixir and Dialyzer

Possible mentors: José Valim, James Fish

You can’t perform that action at this time.
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.
Press h to open a hovercard with more details.