{"id":14992099,"url":"https://github.com/Pencilcaseman/hasty","last_synced_at":"2025-09-25T14:30:50.512Z","repository":{"id":209714102,"uuid":"724611959","full_name":"Pencilcaseman/hasty","owner":"Pencilcaseman","description":"High-performance BLAS and LAPACK within Rust","archived":false,"fork":false,"pushed_at":"2024-03-30T04:55:44.000Z","size":447,"stargazers_count":4,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-09-20T07:17:01.469Z","etag":null,"topics":["accelerate","atlas","blas","mkl","openblas","rust"],"latest_commit_sha":null,"homepage":"https://crates.io/crates/hasty","language":"C++","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/Pencilcaseman.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-11-28T12:44:40.000Z","updated_at":"2025-04-10T06:28:27.000Z","dependencies_parsed_at":"2023-12-02T00:22:50.834Z","dependency_job_id":"55920327-e8bb-4eea-8699-3f42891507db","html_url":"https://github.com/Pencilcaseman/hasty","commit_stats":null,"previous_names":["pencilcaseman/hasty"],"tags_count":12,"template":false,"template_full_name":null,"purl":"pkg:github/Pencilcaseman/hasty","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Pencilcaseman%2Fhasty","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Pencilcaseman%2Fhasty/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Pencilcaseman%2Fhasty/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Pencilcaseman%2Fhasty/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Pencilcaseman","download_url":"https://codeload.github.com/Pencilcaseman/hasty/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Pencilcaseman%2Fhasty/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":276932076,"owners_count":25730720,"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","status":"online","status_checked_at":"2025-09-25T02:00:09.612Z","response_time":80,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["accelerate","atlas","blas","mkl","openblas","rust"],"created_at":"2024-09-24T15:00:44.057Z","updated_at":"2025-09-25T14:30:50.166Z","avatar_url":"https://github.com/Pencilcaseman.png","language":"C++","funding_links":[],"categories":["Scientific Computation"],"sub_categories":[],"readme":"\u003cimg src=\"https://raw.githubusercontent.com/Pencilcaseman/hasty/master/img/logo_dark_mode.png\" alt=\"Hasty Logo\" style=\"margin-left: auto; margin-right: auto; display: block; width: 75%;\"\u003e\n\n[![Crates.io](https://img.shields.io/crates/v/hasty)](https://crates.io/crates/hasty)\n[![Documentation](https://docs.rs/hasty/badge.svg)](https://docs.rs/hasty)\n[![License](https://img.shields.io/crates/l/hasty)](https://github.com/Pencilcaseman/hasty/blob/master/LICENSE)\n[![Continuous Integration](https://github.com/Pencilcaseman/hasty/actions/workflows/continuous_integration.yaml/badge.svg)](https://github.com/Pencilcaseman/hasty/actions/workflows/continuous_integration.yaml)\n\n# Hasty\n\nHasty provides a Rust-native interface to high-performance BLAS libraries, such as\n[OpenBLAS](https://github.com/OpenMathLib/OpenBLAS),\n[Intel MKL](https://www.intel.com/content/www/us/en/developer/tools/oneapi/onemkl.html),\n[Apple Accelerate](https://developer.apple.com/documentation/accelerate), and more.\n\nUnlike existing BLAS bindings, Hasty will automatically detect and link to the best available\nBLAS library on your system without any configuration required. You can also specify a path to\na specific BLAS library via the `HASTY_BLAS_PATH` environment variable, if you wish.\n\n*Note that you may need to perform a clean build of your project if you change the BLAS library\nthat Hasty links to.*\n\nFor more information, see the [documentation](https://docs.rs/hasty).\n\n## Example\n\n```rust\nfn main() {\n    let lib = hasty::get_blas_library();\n    println!(\"Using BLAS Library: {lib}\");\n    \n    type Scalar = f32;\n\n    let m: u64 = 2;\n    let n: u64 = 1;\n    let k: u64 = 3;\n    let mut a: Vec\u003cScalar\u003e = vec![0.0; (m * k) as usize];\n    let mut b: Vec\u003cScalar\u003e = vec![0.0; (k * n) as usize];\n    let mut c: Vec\u003cScalar\u003e = vec![0.0; (m * n) as usize];\n\n    for i in 0..(m * k) {\n        a[i as usize] = i as Scalar + 1.0;\n    }\n\n    for i in 0..(k * n) {\n        b[i as usize] = i as Scalar + 1.0;\n    }\n\n    hasty::level3::gemm(\n        hasty::StorageOrder::RowMajor,\n        hasty::Transpose::NoTrans,\n        hasty::Transpose::NoTrans,\n        m,\n        n,\n        k,\n        1.0,\n        \u0026a,\n        k,\n        \u0026b,\n        n,\n        0.0,\n        \u0026mut c,\n        n,\n    );\n\n    println!(\"Result: {:?}\", c);\n}\n```\n\n## Development Plans\n\n### More BLAS Libraries\n\nHasty currently supports a range of BLAS libraries, but it's difficult to test them all. We want to support\nas many BLAS libraries as possible, so if you find a configuration that doesn't work, please open an issue.\n\n### Fall-back BLAS Library\n\nWe aim to have fall-back implementations for all BLAS functions if we don't find a suitable BLAS library on\nyour system, but they will be much slower than the optimized implementations provided by BLAS libraries.\nIdeally, we'd like to optimise these implementations as much as possible, but that's a tricky task and will\nrequire contributions from the community.\n\n### Missing Functions\n\nHasty is still a work in progress, and there are a ***lot*** of BLAS functions to implement.\nIf you need a function that isn't implemented yet, please open an issue or submit a pull request,\nand I'll get it added as soon as possible!\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FPencilcaseman%2Fhasty","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FPencilcaseman%2Fhasty","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FPencilcaseman%2Fhasty/lists"}