Current section
Files
Jump to
Current section
Files
mix.exs
defmodule Firebird.MixProject do
use Mix.Project
def project do
[
app: :firebird,
version: "1.0.0",
elixir: "~> 1.14",
start_permanent: Mix.env() == :prod,
deps: deps(),
name: "Firebird",
description:
"Run WebAssembly from Elixir. Load WASM modules in Rust, Go, C — call them like native functions.",
source_url: "https://github.com/hdresearch/firebird",
homepage_url: "https://github.com/hdresearch/firebird",
package: package(),
docs: docs(),
test_coverage: [tool: ExCoveralls],
preferred_cli_env: [
coveralls: :test,
"coveralls.detail": :test,
"coveralls.html": :test
]
]
end
def application do
[
extra_applications: [:logger]
]
end
defp package do
[
licenses: ["MIT"],
links: %{
"GitHub" => "https://github.com/hdresearch/firebird",
"Docs" => "https://hexdocs.pm/firebird"
},
files:
~w(lib priv/wasm fixtures/math.wasm fixtures/wat_math.wasm mix.exs README.md CHEATSHEET.md LICENSE)
]
end
defp docs do
[
main: "readme",
extras: [
"README.md",
"CHEATSHEET.md",
"CONTRIBUTING.md",
"docs/GETTING_STARTED.md",
"docs/DECISION_GUIDE.md",
"docs/PERFORMANCE_GUIDE.md",
"docs/API.md",
"docs/ARCHITECTURE.md",
"docs/COOKBOOK.md",
"docs/TROUBLESHOOTING.md",
"docs/ELIXIR_TO_WASM.md",
"docs/PHOENIX_TO_WASM.md",
"docs/TESTING_GUIDE.md",
"docs/FAQ.md",
"docs/WASM_TARGET.md",
"docs/WASM_TARGET_API.md"
],
groups_for_extras: [
Guides: [
"docs/GETTING_STARTED.md",
"docs/DECISION_GUIDE.md",
"docs/PERFORMANCE_GUIDE.md",
"docs/TESTING_GUIDE.md",
"docs/COOKBOOK.md",
"docs/FAQ.md",
"docs/TROUBLESHOOTING.md"
],
Reference: [
"docs/API.md",
"docs/ARCHITECTURE.md",
"docs/WASM_TARGET_API.md",
"CHEATSHEET.md"
],
Advanced: [
"docs/ELIXIR_TO_WASM.md",
"docs/PHOENIX_TO_WASM.md",
"docs/WASM_TARGET.md",
"CONTRIBUTING.md"
]
],
groups_for_modules: [
Core: [
Firebird,
Firebird.Runtime,
Firebird.Module,
Firebird.Pool,
Firebird.Lazy,
Firebird.Memory
],
"Streaming & Pipelines": [
Firebird.Stream,
Firebird.Pipeline,
Firebird.Builder,
Firebird.Batch
],
"Developer Tools": [
Firebird.Inspector,
Firebird.TestCase,
Firebird.TestHelpers,
Firebird.TypedCall,
Firebird.Sigils,
Firebird.Quick,
Firebird.Unwrap
],
Production: [
Firebird.Cache,
Firebird.ModuleCache,
Firebird.Preloader,
Firebird.HotReload,
Firebird.Metrics,
Firebird.Benchmark,
Firebird.Profiler,
Firebird.Sandbox
],
"WASM Target (Elixir → WASM)": ~r/Firebird\.Target/,
Errors: [Firebird.WasmError, Firebird.Errors],
Phoenix: ~r/Firebird\.Phoenix/,
Compiler: ~r/Firebird\.Compiler/,
"Mix Tasks": ~r/Mix\.Tasks/
]
]
end
defp deps do
[
# WASM runtime
{:wasmex, "~> 0.9"},
{:jason, "~> 1.4"},
{:excoveralls, "~> 0.18", only: :test},
{:benchee, "~> 1.3", only: :dev},
{:ex_doc, "~> 0.31", only: :dev, runtime: false}
]
end
end