Packages

A functional, monadic wrapper for Mnesia built with category theory principles. Features: auto-increment counters, TTL with automatic cleanup, backup/restore, real-time events, and a clean CRUD API. Pure functional programming throughout.

Current section

Files

Jump to
mnesia_ex mix.exs
Raw

mix.exs

defmodule MnesiaEx.MixProject do
use Mix.Project
@version "0.2.0"
@source_url "https://github.com/AR3ON/mnesia_ex"
def project do
[
app: :mnesia_ex,
version: @version,
elixir: "~> 1.15",
start_permanent: Mix.env() == :prod,
deps: deps(),
description: description(),
package: package(),
docs: docs(),
name: "MnesiaEx",
source_url: @source_url,
homepage_url: @source_url,
elixirc_paths: elixirc_paths(Mix.env())
]
end
def application do
[
extra_applications: [:logger, :mnesia],
mod: {MnesiaEx.Application, []}
]
end
defp deps do
[
{:jason, "~> 1.4"},
{:csv, "~> 3.0"},
{:ex_doc, "~> 0.29", only: :dev, runtime: false},
{:credo, "~> 1.7", only: [:dev, :test], runtime: false}
]
end
defp description do
"""
A functional, monadic wrapper for Mnesia built with category theory principles.
Features: auto-increment counters, TTL with automatic cleanup, backup/restore,
real-time events, and a clean CRUD API. Pure functional programming throughout.
"""
end
defp package do
[
name: :mnesia_ex,
files: ~w(lib examples .formatter.exs mix.exs README* LICENSE* CHANGELOG*),
licenses: ["MIT"],
links: %{
"GitHub" => @source_url,
"Changelog" => "#{@source_url}/blob/master/CHANGELOG.md",
"Documentation" => "https://hexdocs.pm/mnesia_ex"
},
maintainers: ["AR3ON"],
keywords: [
"mnesia",
"database",
"distributed",
"functional",
"monad",
"ttl",
"backup",
"counter",
"events",
"category-theory"
]
]
end
defp docs do
[
main: "MnesiaEx",
source_url: @source_url,
source_ref: "v#{@version}",
source_url_pattern: "#{@source_url}/blob/v#{@version}/%{path}#L%{line}",
formatters: ["html"],
extras: [
"README.md",
"CHANGELOG.md",
"LICENSE",
"examples/README.md"
],
groups_for_extras: [
Introduction: ~r/README.md/,
Examples: ~r/examples\//,
Changelog: ~r/CHANGELOG.md/,
License: ~r/LICENSE/
],
groups_for_modules: [
"Core API": [
MnesiaEx,
MnesiaEx.Application
],
"Database Operations": [
MnesiaEx.Schema,
MnesiaEx.Table,
MnesiaEx.Query
],
"Features": [
MnesiaEx.TTL,
MnesiaEx.Counter,
MnesiaEx.Events,
MnesiaEx.Backup
],
"Utilities": [
MnesiaEx.Config,
MnesiaEx.Utils,
MnesiaEx.Duration
]
]
]
end
defp elixirc_paths(:test), do: ["lib", "test/support"]
defp elixirc_paths(_), do: ["lib"]
end