A decentralized music tracking and discovery platform built on AT Protocol 🎵
rocksky.app
spotify
atproto
lastfm
musicbrainz
scrobbling
listenbrainz
1defmodule Rocksky.MixProject do
2 use Mix.Project
3
4 @version "0.8.1"
5 @source_url "https://github.com/tsirysndr/rocksky"
6
7 def project do
8 [
9 app: :rocksky_ex,
10 version: @version,
11 elixir: "~> 1.15",
12 start_permanent: Mix.env() == :prod,
13 deps: deps(),
14 description: description(),
15 package: package(),
16 docs: docs(),
17 name: "Rocksky",
18 source_url: @source_url
19 ]
20 end
21
22 def application do
23 [
24 extra_applications: [:logger]
25 ]
26 end
27
28 defp deps do
29 [
30 # Native core (Rustler NIF). Published builds depend on the Hex
31 # `rocksky_erl` package (its loader fetches the native lib on first use);
32 # monorepo dev sets ROCKSKY_ERL_PATH=../erlang for the local build.
33 {:rocksky_erl, rocksky_erl_dep()},
34 {:ex_doc, "~> 0.34", only: :dev, runtime: false}
35 ]
36 end
37
38 defp rocksky_erl_dep do
39 case System.get_env("ROCKSKY_ERL_PATH") do
40 nil -> "~> 0.5"
41 path -> [path: path]
42 end
43 end
44
45 defp description do
46 "Elixir SDK for Rocksky — native bindings to the shared Rust core: " <>
47 "AppView reads, AT Protocol PDS writes (scrobble, like, follow, shout), " <>
48 "and identity hashes."
49 end
50
51 defp package do
52 [
53 maintainers: ["Rocksky"],
54 licenses: ["MIT"],
55 links: %{"GitHub" => @source_url},
56 files: ~w(lib mix.exs README.md LICENSE .formatter.exs)
57 ]
58 end
59
60 defp docs do
61 [
62 main: "Rocksky",
63 source_ref: "v#{@version}",
64 extras: ["README.md"]
65 ]
66 end
67end