Packages

High-performance Elixir wrapper for Signal Protocol cryptographic primitives with libsodium. Provides idiomatic APIs for key generation, digital signatures, encryption, and session management.

Current section

Files

Jump to
Raw

mix.exs

defmodule LibsignalProtocol.MixProject do
  use Mix.Project

  def project do
    [
      app: :libsignal_protocol,
      version: "0.3.0",
      elixir: "~> 1.15",
      start_permanent: Mix.env() == :prod,
      deps: deps(),
      test_coverage: [tool: ExCoveralls, output: "tmp/cover"],
      preferred_cli_env: [
        coveralls: :test,
        "coveralls.detail": :test,
        "coveralls.post": :test,
        "coveralls.html": :test,
        "coveralls.github": :test
      ],
      docs: [output: "tmp/doc"],
      aliases: aliases(),
      description:
        "High-performance Elixir wrapper for Signal Protocol cryptographic primitives with libsodium. Provides idiomatic APIs for key generation, digital signatures, encryption, and session management.",
      package: package(),
      source_url: "https://github.com/hydepwns/libsignal-protocol-nif",
      homepage_url: "https://hex.pm/packages/libsignal_protocol"
    ]
  end

  defp package do
    [
      name: "libsignal_protocol",
      licenses: ["Apache-2.0"],
      links: %{"GitHub" => "https://github.com/hydepwns/libsignal-protocol-nif"},
      files: ~w(lib mix.exs README.md LICENSE),
      maintainers: ["hydepwns"],
      keywords: [
        "signal",
        "protocol",
        "cryptography",
        "encryption",
        "security",
        "nif",
        "libsodium",
        "curve25519",
        "ed25519",
        "aes-gcm"
      ]
    ]
  end

  def application do
    [
      extra_applications: [:logger]
    ]
  end

  defp deps do
    [
      # The Erlang NIF this wrapper is a facade over. Published from the same
      # repo; its rebar3 post-compile hook fetches or builds priv/*.so.
      {:libsignal_protocol_nif, "~> 0.3"},
      {:castore, "~> 1.0"},
      {:ex_doc, "~> 0.31", only: :dev, runtime: false},
      {:excoveralls, "~> 0.18", only: :test},
      {:credo, "~> 1.7", only: [:dev, :test], runtime: false},
      {:dialyxir, "~> 1.3", only: [:dev], runtime: false}
    ]
  end

  defp aliases do
    [
      compile: ["compile"],
      clean: ["clean"]
    ]
  end
end