defmodule FastestTiktoken.MixProject do use Mix.Project def project do [ app: :fastest_tiktoken, version: "0.1.2", description: "Fast Elixir bindings for the pure-Rust tiktoken crate", source_url: "https://github.com/caudena/fastest_tiktoken", homepage_url: "https://github.com/caudena/fastest_tiktoken", elixir: "~> 1.19", start_permanent: Mix.env() == :prod, elixirc_paths: elixirc_paths(Mix.env()), deps: deps(), package: package(), docs: docs() ] end def application do [ extra_applications: [:logger] ] end defp elixirc_paths(:test), do: ["lib", "test/support"] defp elixirc_paths(_env), do: ["lib"] defp deps do [ {:ex_doc, "~> 0.40", only: :dev, runtime: false}, {:rustler, "~> 0.38.0", optional: true}, {:rustler_precompiled, "~> 0.9"} ] end defp docs do public_modules = public_modules() [ main: "readme", source_ref: "master", source_url: "https://github.com/caudena/fastest_tiktoken", extras: [ "CHANGELOG.md", "README.md", "docs/usage.md", "docs/parity-and-performance.md", "LICENSE" ], groups_for_extras: [ "Start Here": ["README.md", "CHANGELOG.md"], Guides: [ "docs/usage.md", "docs/parity-and-performance.md" ] ], groups_for_modules: [ "Core API": [ FastestTiktoken ] ], filter_modules: fn module, _metadata -> module in public_modules end ] end defp package do [ name: "fastest_tiktoken", files: package_files(), licenses: ["MIT"], links: %{ "GitHub" => "https://github.com/caudena/fastest_tiktoken" } ] end defp package_files do [ ".formatter.exs", "CHANGELOG.md", "LICENSE", "README.md", "docs", "lib", "mix.exs", "native/fastest_tiktoken/.cargo", "native/fastest_tiktoken/src", "native/fastest_tiktoken/Cargo*" ] ++ Enum.sort(Path.wildcard("checksum-*.exs")) end defp public_modules do [ FastestTiktoken ] end end