{"id":19093708,"url":"https://github.com/juliaarrays/staticarrayinterface.jl","last_synced_at":"2025-06-17T18:34:08.119Z","repository":{"id":65957109,"uuid":"603378082","full_name":"JuliaArrays/StaticArrayInterface.jl","owner":"JuliaArrays","description":"Interface designs for enforcing static computations in array functions with Julia","archived":false,"fork":false,"pushed_at":"2024-02-05T14:49:56.000Z","size":331,"stargazers_count":13,"open_issues_count":10,"forks_count":3,"subscribers_count":8,"default_branch":"master","last_synced_at":"2024-05-08T21:14:07.453Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Julia","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/JuliaArrays.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":"CITATION.bib","codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-02-18T10:26:18.000Z","updated_at":"2024-06-27T03:53:06.873Z","dependencies_parsed_at":"2023-12-12T09:39:38.551Z","dependency_job_id":"e4a82e31-4b3a-4114-937c-09b4c3b61221","html_url":"https://github.com/JuliaArrays/StaticArrayInterface.jl","commit_stats":null,"previous_names":[],"tags_count":10,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JuliaArrays%2FStaticArrayInterface.jl","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JuliaArrays%2FStaticArrayInterface.jl/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JuliaArrays%2FStaticArrayInterface.jl/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JuliaArrays%2FStaticArrayInterface.jl/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/JuliaArrays","download_url":"https://codeload.github.com/JuliaArrays/StaticArrayInterface.jl/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":240142863,"owners_count":19754640,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-09T03:25:47.912Z","updated_at":"2025-02-22T07:54:34.050Z","avatar_url":"https://github.com/JuliaArrays.png","language":"Julia","funding_links":[],"categories":[],"sub_categories":[],"readme":"# StaticArrayInterface.jl\n\n[![Stable](https://img.shields.io/badge/docs-stable-blue.svg)](https://docs.sciml.ai/StaticArrayInterface/stable/)\n[![CI](https://github.com/JuliaArrays/StaticArrayInterface.jl/workflows/CI/badge.svg)](https://github.com/JuliaArrays/StaticArrayInterface.jl/actions?query=workflow%3ACI)\n[![Build status](https://badge.buildkite.com/a2db252d92478e1d7196ee7454004efdfb6ab59496cbac91a2.svg?branch=master)](https://buildkite.com/julialang/StaticArrayInterface-dot-jl)\n[![codecov](https://codecov.io/gh/JuliaArrays/StaticArrayInterface.jl/branch/master/graph/badge.svg)](https://codecov.io/gh/JuliaArrays/StaticArrayInterface.jl)\n\nThe AbstractArray interface in Base Julia does not always enforce static guarantees.\nFor example, if the size of an array is known at compile time, many of the indexing\nschemes are not specialized to make use of that size to build fully optimized code.\nIn most cases a user should rely on the compiler to deduce the static properties\nand perform the optimization. However, some brave souls believe they can beat the\ncompiler, and this library is for them. \n\nFunctions like `known_length` return values using [Static.jl](https://github.com/SciML/Static.jl)\nwhich encode all of the information at the type level, which in turn forces the\ncomputation to occur at compile time.\n\n## Is This Library About StaticArrays?\n\nNo, not necessarily. StaticArrays.jl is one library about array types which have static compile\ntime information. However, there are many other array types with static compile time information.\nThe purpose of this library is to be able to write code generic to all of those libraries\nwhich also keep this property of enforcing the computation is at compile time by using\nthe type space.\n\n## Warning: Compile Times\n\nBecause this library enforces things be done at compile time by encoding everything\ninto types, using it will increase your compile times. You have been warned, now\nproceed (with caution).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjuliaarrays%2Fstaticarrayinterface.jl","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjuliaarrays%2Fstaticarrayinterface.jl","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjuliaarrays%2Fstaticarrayinterface.jl/lists"}