Packages
spikard
0.13.0
0.17.0-rc.11
0.17.0-rc.10
0.17.0-rc.9
0.17.0-rc.8
0.17.0-rc.7
0.17.0-rc.6
0.17.0-rc.5
0.17.0-rc.4
0.17.0-rc.3
0.17.0-rc.1
0.16.1
0.16.0
0.16.0-rc.4
0.16.0-rc.3
0.15.6-rc.21
0.15.6-rc.20
0.15.6-rc.19
0.15.6-rc.18
0.15.6-rc.17
0.15.6-rc.16
0.15.6-rc.15
0.15.6-rc.14
0.15.6-rc.9
0.15.6-rc.7
0.15.6-rc.6
0.15.6-rc.4
0.15.4
0.15.3
0.13.0
0.12.0
0.11.0
Codegen-first polyglot web toolkit with a Rust core and bindings for 14 languages
Current section
Files
Jump to
Current section
Files
mix.exs
defmodule Spikard.MixProject do
use Mix.Project
@version "0.13.0"
@source_url "https://github.com/Goldziher/spikard"
def project do
[
app: :spikard,
version: @version,
elixir: "~> 1.18",
start_permanent: Mix.env() == :prod,
deps: deps(),
description: "High-performance HTTP framework for Elixir powered by Rust",
package: package(),
docs: docs(),
aliases: aliases(),
test_coverage: [tool: ExCoveralls],
dialyzer: [
plt_file: {:no_warn, "priv/plts/dialyzer.plt"},
plt_add_apps: [:mix]
],
rustler_crates: [spikard_elixir: [mode: :release]]
]
end
def cli do
[
preferred_envs: [
"test.watch": :test,
coveralls: :test,
"coveralls.html": :test,
"coveralls.lcov": :test
]
]
end
def application do
[
extra_applications: [:logger]
]
end
defp deps do
[
# NIF compilation
{:rustler, "~> 0.37", runtime: false},
{:rustler_precompiled, "~> 0.8"},
# Development and testing
{:credo, "~> 1.7", only: [:dev, :test], runtime: false},
{:dialyxir, "~> 1.4", only: [:dev, :test], runtime: false},
{:ex_doc, "~> 0.38", only: :dev, runtime: false},
{:excoveralls, "~> 0.18", only: :test},
{:jason, "~> 1.4"}
]
end
defp package do
[
name: "spikard",
files: ~w(
lib
native/spikard_elixir/src
native/spikard_elixir/Cargo.toml
native/spikard_elixir/Cargo.lock
.formatter.exs
mix.exs
README.md
LICENSE
),
licenses: ["MIT"],
maintainers: ["Na'aman Hirschfeld"],
links: %{
"GitHub" => @source_url,
"Changelog" => "#{@source_url}/blob/main/CHANGELOG.md"
}
]
end
defp docs do
[
main: "Spikard",
source_url: @source_url,
source_ref: "v#{@version}",
homepage_url: "https://spikard.dev",
extras: ["README.md"],
groups_for_modules: [
Core: [Spikard, Spikard.Router, Spikard.Request, Spikard.Response],
Authentication: [Spikard.Auth, Spikard.Auth.JWT, Spikard.Auth.ApiKey],
"Real-Time": [Spikard.WebSocket, Spikard.Sse],
Testing: [Spikard.TestClient, Spikard.TestClient.Response],
"Dependency Injection": [Spikard.DI],
Advanced: [Spikard.Lifecycle, Spikard.Background, Spikard.UploadFile, Spikard.OpenAPI]
]
]
end
defp aliases do
[
lint: ["credo suggest --all --strict"],
"lint.fix": ["credo suggest --all --strict"]
]
end
end