Current section
Files
Jump to
Current section
Files
mix.exs
defmodule SimdJson.MixProject do
# covers: simd_json.package.mix_library simd_json.package.specled_tooling simd_json.package.native_build_tooling simd_json.package.native_source_distribution simd_json.native_build_and_abi.pinned_toolchain simd_json.release.public_identity simd_json.release.project_license simd_json.release.consumer_documentation simd_json.release.precompiled_delivery
use Mix.Project
@version "1.0.0"
@source_url "https://github.com/pcharbon70/simd_json"
@user_guides [
"docs/guides/01-getting-started.md",
"docs/guides/02-decoding-json.md",
"docs/guides/03-selecting-fields.md",
"docs/guides/04-streaming-large-files.md",
"docs/guides/05-errors-limits-performance.md",
"docs/guides/06-deployment.md"
]
@benchmark_guides [
"docs/benchmarks/README.md",
"docs/benchmarks/reports/sparse-projection/projection-benchmark.md",
"docs/benchmarks/reports/stream-etl/stream-etl.md",
"docs/benchmarks/reports/eager-decode/decode-benchmark.md",
"docs/benchmarks/reports/wide-projection/wide-projection.md"
]
@benchmark_extras [
{"docs/benchmarks/README.md", filename: "benchmarks", title: "Benchmark Reports"},
{"docs/benchmarks/reports/sparse-projection/projection-benchmark.md",
filename: "benchmark-sparse-projection", title: "Sparse Projection Benchmark"},
{"docs/benchmarks/reports/stream-etl/stream-etl.md",
filename: "benchmark-stream-etl", title: "Stream ETL Benchmark"},
{"docs/benchmarks/reports/eager-decode/decode-benchmark.md",
filename: "benchmark-eager-decode", title: "Eager Decode Benchmark"},
{"docs/benchmarks/reports/wide-projection/wide-projection.md",
filename: "benchmark-wide-projection", title: "Wide Projection Benchmark"}
]
def project do
[
app: :simd_json,
name: "SimdJson",
version: @version,
elixir: "~> 1.18.4",
start_permanent: Mix.env() == :prod,
description: "File-backed SIMD JSON projection and bounded streaming for Elixir",
source_url: @source_url,
homepage_url: @source_url,
docs: docs(),
package: package(),
deps: deps()
]
end
def application do
[
mod: {SimdJson.Application, []},
extra_applications: [:crypto, :inets, :logger, :public_key, :ssl]
]
end
defp deps do
[
{:zigler, "== 0.16.0", runtime: false, optional: true},
{:telemetry, "~> 1.3"},
{:jason, "== 1.4.5", only: [:dev, :test], runtime: false},
{:spec_led_ex,
github: "specleddev/specled_ex",
ref: "f0d20dba6786a8f1dff0d7365a113b23db696fc1",
only: [:dev, :test],
runtime: false}
]
end
defp package do
# The native directory deliberately includes the upstream source, its
# provenance manifest, and both upstream license files in Hex artifacts.
[
name: "simd_json",
maintainers: ["Pascal Charbonneau"],
licenses: ["MIT"],
links: %{
"Documentation" => "https://hexdocs.pm/simd_json",
"GitHub" => @source_url,
"Homepage" => @source_url,
"Issues" => "#{@source_url}/issues"
},
exclude_patterns: [
~r/(?:^|\/)\.Elixir\..*\.zig$/,
~r/(?:^|\/)(?:_build|deps|doc|cover|test|bench|scripts)(?:\/|$)/,
~r/(?:^|\/)(?:\.git|\.github|\.spec)(?:\/|$)/,
~r/(?:^|\/)(?:\.env(?:\..*)?|credentials?|secrets?)(?:\/|$)/i,
~r/(?:^|\/).*(?:~|\.swp|\.swo|\.DS_Store)$/
],
files: [
"lib/simd_json.ex",
"lib/simd_json",
"native/manifest.exs",
"native/qualification/milestone_1.exs",
"native/precompiled",
"native/include",
"native/src",
"native/symbols",
"native/vendor",
"native/zig",
"docs/guides",
"docs/benchmarks",
"LICENSE",
"THIRD_PARTY_NOTICES.md",
"CHANGELOG.md",
"SECURITY.md",
"CONTRIBUTING.md",
".tool-versions",
"mix.exs",
"mix.lock",
"README.md"
]
]
end
defp docs do
[
main: "readme",
source_url: @source_url,
source_ref: "v#{@version}",
extras:
[
{"README.md", filename: "readme", title: "Overview"},
{"CHANGELOG.md", filename: "changelog", title: "Changelog"},
{"SECURITY.md", filename: "security", title: "Security"},
{"CONTRIBUTING.md", filename: "contributing", title: "Contributing"},
{"LICENSE", filename: "license", title: "License"},
{"THIRD_PARTY_NOTICES.md",
filename: "third-party-notices", title: "Third-Party Notices"}
] ++ @user_guides ++ @benchmark_extras,
groups_for_extras: [
"User guides": @user_guides,
"Release notes": ["CHANGELOG.md"],
Security: ["SECURITY.md"],
Contributing: ["CONTRIBUTING.md"],
Benchmarks: @benchmark_guides
]
]
end
end