Packages
influx_elixir
0.1.20
0.1.58
0.1.57
0.1.56
0.1.55
0.1.54
0.1.53
0.1.52
0.1.51
0.1.50
0.1.49
0.1.48
0.1.47
0.1.46
0.1.45
0.1.44
0.1.43
0.1.42
0.1.41
0.1.40
0.1.39
0.1.38
0.1.37
0.1.36
0.1.35
0.1.34
0.1.33
0.1.32
0.1.31
0.1.30
0.1.29
0.1.28
0.1.27
0.1.26
0.1.25
0.1.24
0.1.23
0.1.22
0.1.21
0.1.20
0.1.19
0.1.18
0.1.17
0.1.16
0.1.15
0.1.14
0.1.13
0.1.12
0.1.11
0.1.10
0.1.9
0.1.8
0.1.7
0.1.6
0.1.5
0.1.4
0.1.3
0.1.2
0.1.1
Elixir client library for InfluxDB v3 with v2 compatibility
Current section
Files
Jump to
Current section
Files
influx_elixir
mix.exs
mix.exs
defmodule InfluxElixir.MixProject do
use Mix.Project
@version "0.1.20"
@source_url "https://github.com/DistortionPoint/influx-elixir"
def project do
[
app: :influx_elixir,
version: @version,
elixir: "~> 1.18",
elixirc_paths: elixirc_paths(Mix.env()),
start_permanent: Mix.env() == :prod,
deps: deps(),
aliases: aliases(),
dialyzer: dialyzer(),
preferred_cli_env: preferred_cli_env(),
# Test coverage — exclude modules that require external services
test_coverage: [
threshold: 90,
ignore_modules: [
# Requires a live InfluxDB instance (integration-only)
InfluxElixir.Client.HTTP,
# Auto-generated gRPC stub (no logic to test)
InfluxElixir.Flight.Proto.FlightService.Stub,
# Requires a live gRPC server (integration-only)
InfluxElixir.Flight.Client,
# Test support modules (not library code)
InfluxElixir.InfluxCase,
InfluxElixir.IntegrationHelper,
InfluxElixir.TestHelper
]
],
# Hex.pm
name: "InfluxElixir",
description: "Elixir client library for InfluxDB v3 with v2 compatibility",
package: package(),
source_url: @source_url,
docs: docs(),
# UsageRules
usage_rules: usage_rules(),
# Include usage-rules files in hex package
files: [
"lib",
"mix.exs",
"README.md",
"LICENSE",
"CHANGELOG.md",
"usage-rules.md",
"usage-rules/**/*"
]
]
end
def application do
[
extra_applications: [:logger],
mod: {InfluxElixir.Application, []}
]
end
defp elixirc_paths(:test), do: ["lib", "test/support"]
defp elixirc_paths(_env), do: ["lib"]
defp deps do
[
# Runtime — HTTP
{:finch, "~> 0.18"},
{:jason, "~> 1.4"},
{:nimble_csv, "~> 1.2"},
{:telemetry, "~> 1.0"},
{:nimble_options, "~> 1.0"},
# Runtime — Arrow Flight
{:grpc, "~> 0.11 or ~> 1.0"},
{:protobuf, "~> 0.12"},
# Optional — consumers passing %Decimal{} as SQL params get
# numeric serialisation. Consumers without Decimal are unaffected.
{:decimal, "~> 2.0 or ~> 3.0", optional: true},
# Dev/Test
{:usage_rules, "~> 1.2", only: :dev},
{:ex_doc, "~> 0.34", only: :dev, runtime: false},
{:credo, "~> 1.7", only: [:dev, :test], runtime: false},
{:dialyxir, "~> 1.4", only: [:dev, :test], runtime: false},
{:sobelow, "~> 0.13", only: [:dev, :test], runtime: false}
]
end
defp aliases do
[
quality: [
"format --check-formatted",
"credo --strict",
"dialyzer",
"sobelow --config"
]
]
end
defp dialyzer do
[
plt_add_apps: [:mix, :ex_unit],
plt_file: {:no_warn, "priv/plts/dialyzer.plt"}
]
end
defp preferred_cli_env do
[
quality: :test
]
end
defp package do
[
licenses: ["MIT"],
links: %{"GitHub" => @source_url},
maintainers: ["bcatherall"]
]
end
defp docs do
[
main: "InfluxElixir",
extras: [
"README.md",
"CHANGELOG.md",
"docs/guides/testing-with-local-client.md"
],
groups_for_extras: [
Guides: ~r/docs\/guides\/.*/
],
source_ref: "v#{@version}"
]
end
defp usage_rules do
[
file: "AGENTS.md",
usage_rules: [:usage_rules]
]
end
end