{
  "canonical_url": "https://crates.flyology.org/community/",
  "catalog": {
    "name": "community",
    "repository_url": "https://github.com/alire-project/alire-index",
    "revision": "cd12c6aa35b7d6483841517305d57ba167ec78d0"
  },
  "generated_at": "2026-08-23T04:55:42Z",
  "index": {
    "version": "1.4.0"
  },
  "package": {
    "catalog": "community",
    "description": "A formally verified library for calculating numeric, text distances",
    "development_only": false,
    "latest_version": "0.1.0",
    "name": "distance",
    "selected_version": "0.1.0",
    "versions": [
      {
        "dependants": [],
        "dependencies": [],
        "development": false,
        "external": false,
        "manifest": {
          "authors": [
            "Heziode"
          ],
          "description": "A formally verified library for calculating numeric, text distances",
          "licenses": "Apache-2.0 WITH LLVM-exception",
          "long-description": "# Distance\n\nA formally verified Ada/SPARK library for computing distance and similarity metrics.\n\n## Features\n\n- **Numeric Distances**: Euclidean, Manhattan, Minkowski, Chebyshev, Canberra\n- **Statistical Measures**: Cosine Similarity\n- **Text Distances**: Levenshtein, Damerau-Levenshtein, Hamming, Jaro-Winkler, Sørensen-Dice\n\n## Highlights\n\n- Pure Ada 2012 with SPARK annotations\n- Generic implementations for flexible type support\n- No external dependencies (test suite uses AUnit)\n- Comprehensive preconditions and postconditions\n\n## Usage\n\n```ada\nwith Ada.Numerics.Elementary_Functions;\nwith Distance.Numeric.Signatures;\nwith Distance.Numeric.Euclidean_Generic;\n\nprocedure Example is\n   type Float_Vector is array (Positive range <>) of Float;\n\n   package Float_Math is new Ada.Numerics.Elementary_Functions (Float);\n   package Float_Sig is new Distance.Numeric.Signatures\n     (Element_Type => Float,\n      Zero         => 0.0,\n      One          => 1.0,\n      Sqrt         => Float_Math.Sqrt,\n      \"**\"         => Float_Math.\"**\",\n      Max_Element  => Float'Last);\n\n   function Euclidean is new Distance.Numeric.Euclidean_Generic\n     (Numeric_Ops => Float_Sig, Index_Type => Positive, Vector => Float_Vector);\n\n   D : Float := Euclidean ((0.0, 0.0), (3.0, 4.0));  --  D = 5.0\nbegin\n   null;\nend Example;\n```\n\nFor fixed-point and integer types, you can use [Spark_Math](https://github.com/adarium-labs/spark_math) to provide the required operations.\n",
          "maintainers": [
            "Heziode <heziode@protonmail.com>"
          ],
          "maintainers-logins": [
            "heziode"
          ],
          "name": "distance",
          "origin": {
            "commit": "e265e32656db1284ef750cbd473db95424e5b215",
            "url": "git+https://github.com/adarium-labs/distance.git"
          },
          "tags": [
            "ada",
            "spark",
            "distance",
            "metrics",
            "algorithms",
            "mathematics",
            "string",
            "similarity",
            "levenshtein",
            "geospatial",
            "high-integrity",
            "alire",
            "data-science"
          ],
          "version": "0.1.0",
          "website": ""
        },
        "path": "index/di/distance/distance-0.1.0.toml",
        "version": "0.1.0"
      }
    ]
  },
  "schema_version": 4
}
