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.1.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: "Elixir wrapper for Signal Protocol cryptographic primitives",
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)
]
end
def application do
[
extra_applications: [:logger]
]
end
defp deps do
[
{: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
# Ensure the NIF is built and cleaned like in rebar.config
# The NIF is expected at priv/libsignal_protocol_nif.so
defp aliases do
[
compile: ["cmd make -C ../../c_src build", "compile"],
clean: ["cmd make -C ../../c_src clean", "clean"]
]
end
end