Packages

An Elixir-first XMTP SDK backed by the official Rust XMTP SDK.

Current section

Files

Jump to
Raw

mix.exs

defmodule XmtpElixirSdk.MixProject do
use Mix.Project
@version "0.1.2"
@description "An Elixir-first XMTP SDK backed by the official Rust XMTP SDK."
def project do
[
app: :xmtp_elixir_sdk,
version: @version,
elixir: "~> 1.19.5",
start_permanent: Mix.env() == :prod,
compilers: Mix.compilers() ++ [:xmtp_native],
deps: deps(),
description: @description,
package: package(),
aliases: aliases(),
docs: docs()
]
end
# Run "mix help compile.app" to learn about applications.
def application do
[extra_applications: [:logger]]
end
def cli do
[
preferred_envs: [check: :test, precommit: :test]
]
end
# Run "mix help deps" to learn about dependencies.
defp deps do
[
{:jason, "~> 1.4"},
{:ecto, "~> 3.13"},
{:phoenix_pubsub, "~> 2.2"},
{:keccak_ex, "~> 0.4.2"},
{:ex_secp256k1, "~> 0.8.0"},
{:ex_doc, "~> 0.38", only: :dev, runtime: false}
]
end
defp aliases do
[
check: [
"cmd cargo build --manifest-path native/xmtp_native/Cargo.toml",
"cmd npm --prefix browser_shim ci",
"cmd npm --prefix browser_shim test -- --run",
"cmd npm --prefix browser_shim run typecheck",
"compile --warnings-as-errors",
"deps.unlock --unused",
"format --check-formatted",
"test"
],
"native.build": ["cmd cargo build --release --manifest-path native/xmtp_native/Cargo.toml"],
precommit: ["check"]
]
end
defp package do
[
name: "xmtp_elixir_sdk",
licenses: ["MIT"],
files: [
".formatter.exs",
"CHANGELOG.md",
"LICENSE",
"README.md",
"docs",
"lib",
"native/xmtp_native/Cargo.toml",
"native/xmtp_native/Cargo.lock",
"native/xmtp_native/build.rs",
"native/xmtp_native/src",
"priv",
"readme-assets",
"mix.exs"
],
links: %{
"XMTP" => "https://xmtp.org",
"Upstream Browser SDK" => "https://github.com/xmtp/xmtp-js/tree/main/sdks/browser-sdk"
}
]
end
defp docs do
[
main: "readme",
extras: [
"README.md",
"CHANGELOG.md",
"docs/phoenix-frontend-agent-guide.md",
"docs/storage-contract.md"
]
]
end
end