Monthly Downloads: 60,908
Programming language: Elixir
License: MIT License
Latest version: v1.1.0

exconstructor alternatives and similar packages

Based on the "Algorithms and Data structures" category.
Alternatively, view exconstructor alternatives based on common mentions on social networks and blogs.

Do you think we are missing an alternative of exconstructor or a related project?

Add another 'Algorithms and Data structures' Package



wercker status Coverage Status Hex.pm Version

ExConstructor is an Elixir library that makes it easy to instantiate structs from external data, such as that emitted by a JSON parser.

Add use ExConstructor after a defstruct statement to inject a constructor function into the module.

The generated constructor, called new by default, handles map-vs-keyword-list, string-vs-atom-keys, and camelCase-vs-under_score input data issues automatically, DRYing up your code and letting you move on to the interesting parts of your program.


defmodule TestStruct do
  defstruct field_one: nil,
            field_two: nil,
            field_three: nil,
            field_four: nil
  use ExConstructor

TestStruct.new(%{"field_one" => "a", "fieldTwo" => "b", :field_three => "c", :FieldFour => "d"})
# => %TestStruct{field_one: "a", field_two: "b", field_three: "c", field_four: "d"}

Full Documentation

Full ExConstructor documentation is available on Hexdocs.pm.


Many thanks to those who've contributed to ExConstructor:

How to Contribute

My favorite contributions are PRs with code that matches project style, and that come with full test coverage and documentation. I have a hard time saying no to them.

Feature requests are also welcome, but the timeline may be much longer.

Bug reports are great -- please include as much information as possible (Erlang/Elixir/Mix version, dependencies and their versions, minimal test case, etc.) and I will be much quicker in resolving the issue.

Authorship and License

ExConstructor is copyright 2016-2017 Appcues, Inc.

ExConstructor is released under the MIT License.

*Note that all licence references and agreements mentioned in the exconstructor README section above are relevant to that project's source code only.