Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/danielberkompas/mithril
An Elixir architecture-in-a-box for a backend server. Supports GraphQL, Authority authentication, and more.
https://github.com/danielberkompas/mithril
elixir generator mix-template project-template template web-server
Last synced: 16 days ago
JSON representation
An Elixir architecture-in-a-box for a backend server. Supports GraphQL, Authority authentication, and more.
- Host: GitHub
- URL: https://github.com/danielberkompas/mithril
- Owner: danielberkompas
- License: mit
- Created: 2017-11-13T21:47:03.000Z (almost 7 years ago)
- Default Branch: master
- Last Pushed: 2019-03-09T16:38:52.000Z (over 5 years ago)
- Last Synced: 2024-04-14T17:01:06.464Z (7 months ago)
- Topics: elixir, generator, mix-template, project-template, template, web-server
- Language: Elixir
- Homepage:
- Size: 5.17 MB
- Stars: 80
- Watchers: 9
- Forks: 6
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
# Mithril
[![Build Status](https://semaphoreci.com/api/v1/projects/39401688-bc0e-4d65-85b0-075dd293d2c7/1625736/badge.svg)](https://semaphoreci.com/ir/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:
1. **Project Generator**: A project generator which sets up your project
with good defaults and architecture.2. **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](https://hexdocs.pm/mithril) 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](https://github.com/infinitered/authority) | Yes | Authentication library |
| [Absinthe](https://absinthe-graphql.org) | Yes | GraphQL APIs (for mobile apps) |
| [Phoenix](https://phoenixframework.org) | Yes | HTTP/Websocket support |
| [Webpack](https://webpack.js.org/) / [Brunch](http://brunch.io/) | Yes | Front-end assets (JS/CSS) |
| [Hound](https://hex.pm/packages/hound) | Yes | In-browser integration tests |## Install
Mithril works best with Elixir 1.6. You can install Mithril like so:
```sh
$ mix archive.install hex mix_generator
$ mix archive.install hex mix_templates
$ mix template.install hex mithril
```You can then generate your project:
```sh
$ mix gen mithril my_app [options]
```See [the documentation](https://hexdocs.pm/mithril) for details on available options.