Mithril
An Elixir architecture-in-a-box for a backend server. Supports GraphQL, Authority authentication, and more.
Mithril provides a foundation for a long-lived, maintainable, and highly scalable backend server. It uses Elixir for reliability and scalability, and a set of conventions to ensure that the backend server is maintainable over the long term.
Mithril is not a framework. It has two parts:
-
Project Generator: A project generator which sets up your project with good defaults and architecture.
-
Conventions: A set of conventions described in the Mithril documentation. None of these conventions are new to the Elixir community. Mithril simply explains existing tools and demonstrates best practices.
See the documentation for details.
Libraries Supported
Other than Elixir, Mithril does not dictate your technology choices. However, the project generator can generate projects with support for any of the libraries listed below.
Name | Optional | Purpose |
---|---|---|
Authority | Yes | Authentication library |
Absinthe | Yes | GraphQL APIs (for mobile apps) |
Phoenix | Yes | HTTP/Websocket support |
Webpack / Brunch | Yes | Front-end assets (JS/CSS) |
Hound | Yes | In-browser integration tests |
Install
Mithril works best with Elixir 1.6. You can install Mithril like so:
$ mix archive.install hex mix_generator
$ mix archive.install hex mix_templates
$ mix template.install hex mithril
You can then generate your project:
$ mix gen mithril my_app [options]
See the documentation for details on available options.