Packages
rover_browser
0.1.0
Drive the Servo web engine from Elixir. One OS process per browser, with per-instance proxy config, cookies, JS evaluation, and input automation.
Current section
Files
Jump to
Current section
Files
rover_browser
mix.exs
mix.exs
defmodule Rover.MixProject do
use Mix.Project
@version "0.1.0"
@source_url "https://github.com/jtippett/rover"
def project do
[
app: :rover,
version: @version,
elixir: "~> 1.17",
start_permanent: Mix.env() == :prod,
elixirc_paths: elixirc_paths(Mix.env()),
# `:rover_download` runs *after* the standard compilers: it fetches the
# precompiled rover_runtime port binary into priv/native/ (see
# Mix.Tasks.Compile.RoverDownload). The binary is only needed at runtime, so
# it can land after Elixir is compiled. ROVER_BUILD=1 skips it.
compilers: Mix.compilers() ++ [:rover_download],
deps: deps(),
description: description(),
package: package(),
docs: docs(),
source_url: @source_url,
name: "Rover",
aliases: aliases(),
test_coverage: [summary: [threshold: 0]]
]
end
defp elixirc_paths(:test), do: ["lib", "test/support"]
defp elixirc_paths(_), do: ["lib"]
def application do
[
# :inets/:ssl/:public_key back the precompiled-binary download performed by
# the :rover_download Mix compiler (see Rover.Precompiled.fetch_body/1).
extra_applications: [:logger, :inets, :ssl, :public_key]
]
end
defp deps do
[
{:msgpax, "~> 2.4"},
{:nimble_options, "~> 1.1"},
{:telemetry, "~> 1.0"},
# dev / test
{:bandit, "~> 1.5", only: :test},
{:plug, "~> 1.16", only: :test},
{:ex_doc, "~> 0.34", only: :dev, runtime: false}
]
end
defp description do
"Drive the Servo web engine from Elixir. One OS process per browser, with " <>
"per-instance proxy config, cookies, JS evaluation, and input automation."
end
defp package do
[
# Hex name differs from the OTP app (`:rover` is taken on Hex by an
# unrelated package). Modules and the app name stay `Rover` / `:rover`.
name: "rover_browser",
maintainers: ["James Tippett"],
licenses: ["MPL-2.0"],
links: %{
"GitHub" => @source_url,
"Changelog" => "#{@source_url}/blob/master/CHANGELOG.md"
},
# Ship the checksum file + Rust sources so consumers on unsupported targets
# (or with ROVER_BUILD=1) can build rover_runtime from source.
files: ~w(lib native/rover_runtime/src native/rover_runtime/Cargo.toml
native/rover_runtime/Cargo.lock checksum-rover_runtime.exs
mix.exs README.md CHANGELOG.md LICENSE)
]
end
defp docs do
[
main: "Rover",
source_url: @source_url,
source_ref: "v#{@version}",
extras: ["README.md", "CHANGELOG.md"]
]
end
defp aliases do
[
"rover.build": ["cmd --cd native/rover_runtime cargo build --release"],
"rover.build.dev": ["cmd --cd native/rover_runtime cargo build"]
]
end
end