defmodule EgglogElixir.MixProject do
use Mix.Project
def project do
[
app: :egglog_elixir,
version: "0.1.0",
elixir: "~> 1.19",
name: "EgglogElixir",
description: "Thin Elixir wrapper around the native Rust egglog engine.",
start_permanent: Mix.env() == :prod,
deps: deps(),
docs: docs(),
package: package()
]
end
def application do
[
extra_applications: [:logger]
]
end
defp deps do
[
{:jason, "~> 1.4"},
{:ex_doc, "~> 0.38", only: :dev, runtime: false},
{:rustler, "~> 0.38.0", runtime: false}
]
end
defp docs do
[
main: "Egglog",
extras: [
"README.md",
"CHANGELOG.md",
"livebooks/getting_started.livemd",
"livebooks/egglog-tutorial/README.md",
"livebooks/egglog-tutorial/01-basics.livemd",
"livebooks/egglog-tutorial/02-datalog.livemd",
"livebooks/egglog-tutorial/03-analysis.livemd",
"livebooks/egglog-tutorial/04-scheduling.livemd",
"livebooks/egglog-tutorial/05-cost-model-and-extraction.livemd",
"livebooks/egglog-tutorial/06-case-study.livemd"
],
groups_for_extras: [
Livebooks: ~r/livebooks/
]
]
end
defp package do
[
licenses: ["MIT"],
links: %{
"Upstream egglog" => "https://github.com/egraphs-good/egglog",
"Tutorial" => "https://egraphs-good.github.io/egglog-tutorial/"
},
files: [
".formatter.exs",
"CHANGELOG.md",
"LICENSE",
"README.md",
"lib",
"livebooks",
"mix.exs",
"native/egglog_nif/Cargo.lock",
"native/egglog_nif/Cargo.toml",
"native/egglog_nif/src"
]
]
end
end