Packages
objectstorex
0.1.0
Unified object storage for AWS S3, Azure Blob Storage, Google Cloud Storage, and local filesystem. Powered by Rust's object_store library via Rustler NIFs. Includes streaming, CAS operations, conditional operations, and comprehensive error handling.
Current section
Files
Jump to
Current section
Files
objectstorex
mix.exs
mix.exs
defmodule ObjectStoreX.MixProject do use Mix.Project @version "0.1.0" @source_url "https://github.com/mindreframer/objectstorex" @dev? String.ends_with?(@version, "-dev") @force_build? System.get_env("OBJECTSTOREX_BUILD") in ["1", "true"] def project do [ app: :objectstorex, version: @version, elixir: "~> 1.14", start_permanent: Mix.env() == :prod, deps: deps(), aliases: aliases(), elixirc_paths: elixirc_paths(Mix.env()), # Hex description: description(), package: package(), # Docs name: "ObjectStoreX", source_url: @source_url, homepage_url: "https://hexdocs.pm/objectstorex", docs: docs(), # Testing test_coverage: [tool: ExCoveralls], preferred_cli_env: [ coveralls: :test, "coveralls.detail": :test, "coveralls.post": :test, "coveralls.html": :test, "coveralls.json": :test ], # Dialyzer dialyzer: [ plt_add_apps: [:mix], plt_file: {:no_warn, "priv/plts/dialyzer.plt"}, ignore_warnings: ".dialyzer_ignore.exs" ] ] end # Specifies which paths to compile per environment defp elixirc_paths(:test), do: ["lib", "examples", "test/support"] defp elixirc_paths(_), do: ["lib"] def application do [ extra_applications: [:logger] ] end defp deps do [ {:rustler, "~> 0.35.0", optional: not (@dev? or @force_build?), runtime: false}, {:rustler_precompiled, "~> 0.7"}, {:jason, "~> 1.4"}, # Dev/Test {:ex_doc, "~> 0.31", only: :dev, runtime: false}, {:credo, "~> 1.7", only: [:dev, :test], runtime: false}, {:dialyxir, "~> 1.4", only: [:dev, :test], runtime: false}, {:excoveralls, "~> 0.18", only: :test}, {:yaml_elixir, "~> 2.9", only: :test} ] end defp description do """ Unified object storage for AWS S3, Azure Blob Storage, Google Cloud Storage, and local filesystem. Powered by Rust's object_store library via Rustler NIFs. Includes streaming, CAS operations, conditional operations, and comprehensive error handling. """ end defp package do [ name: "objectstorex", files: [ "lib", "native/objectstorex/src", "native/objectstorex/.cargo", "native/objectstorex/Cargo.toml", "native/objectstorex/Cargo.lock", "native/objectstorex/Cross.toml", "mix.exs", "README.md", "LICENSE", "CHANGELOG.md", "checksum-Elixir.ObjectStoreX.Native.exs" ], maintainers: ["ObjectStoreX Contributors"], licenses: ["Apache-2.0"], links: %{ "GitHub" => @source_url, "Changelog" => "#{@source_url}/blob/main/CHANGELOG.md" } ] end defp docs do [ main: "ObjectStoreX", source_ref: "v#{@version}", source_url: @source_url, extras: [ "README.md", "CHANGELOG.md", "CONTRIBUTING.md", "guides/getting_started.md", "guides/configuration.md", "guides/streaming.md", "guides/distributed_systems.md", "guides/error_handling.md" ], groups_for_extras: [ Guides: Path.wildcard("guides/*.md") ], groups_for_modules: [ "Core API": [ObjectStoreX], Streaming: [ObjectStoreX.Stream], "Error Handling": [ObjectStoreX.Error], Internal: [ ObjectStoreX.Native, ObjectStoreX.PutMode, ObjectStoreX.GetOptions, ObjectStoreX.Range, ObjectStoreX.Attributes ] ] ] end defp aliases do [ "gen.checksum": "rustler_precompiled.download ObjectStoreX.Native --all --print" ] endend