{"id":31729786,"url":"https://github.com/dimforge/slang-hal","last_synced_at":"2026-03-06T06:03:17.784Z","repository":{"id":315487520,"uuid":"1001982900","full_name":"dimforge/slang-hal","owner":"dimforge","description":"Slang for Scientific Computing","archived":false,"fork":false,"pushed_at":"2026-02-23T13:50:03.000Z","size":84,"stargazers_count":11,"open_issues_count":1,"forks_count":1,"subscribers_count":2,"default_branch":"main","last_synced_at":"2026-03-03T09:33:22.093Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/dimforge.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE-APACHE.txt","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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-06-14T13:11:03.000Z","updated_at":"2026-02-23T02:09:51.000Z","dependencies_parsed_at":"2025-09-18T23:19:27.688Z","dependency_job_id":"8cbcb31a-3bee-4a34-b195-8fa2d7b33f62","html_url":"https://github.com/dimforge/slang-hal","commit_stats":null,"previous_names":["dimforge/slang-hal"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/dimforge/slang-hal","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dimforge%2Fslang-hal","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dimforge%2Fslang-hal/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dimforge%2Fslang-hal/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dimforge%2Fslang-hal/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dimforge","download_url":"https://codeload.github.com/dimforge/slang-hal/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dimforge%2Fslang-hal/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30164532,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-06T04:43:31.446Z","status":"ssl_error","status_checked_at":"2026-03-06T04:40:30.133Z","response_time":250,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":[],"created_at":"2025-10-09T07:16:46.411Z","updated_at":"2026-03-06T06:03:17.760Z","avatar_url":"https://github.com/dimforge.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# slang-hal - A hardware abstraction for Slang\n\nThe **slang-hal** library provides abstractions for running slang shaders on any platform supported by the slang compiler.\n\n\u003e **Warning**\n\u003e **slang-hal** is still very incomplete and under heavy development and is lacking a lot of features and backends.\n\n### Using Slang\n\nIn order to compile and run any slang project, be sure to define the `SLANG_DIR` environment variable:\n1. Download the Slang compiler libraries for your platform: \u003chttps://github.com/shader-slang/slang/releases/tag/v2025.16\u003e\n2. Unzip the downloaded directory, and use its path as value to the `SLANG_DIR` environment variable: `SLANG_DIR=/path/to/slang`.\n   Note that the variable must point to the root of the slang installation (i.e. the directory that contains `bin` and `lib`).\n   We recommend adding that as a system-wide environment variables so that it also becomes available to your IDE.\n\n### Supported backends\n\n**slang-hal** exposes a unified API for interacting with the GPU in a backend-agnostic way.\n\n| Backend | Shader compilation | Compute pipelines | Render pipelines | Buffer read/write   | Non-Pod types | Indirect dispatch | GPU timestamps | Link-time specialization | Comptime | \n|---------|--------------------|-------------------|------------------|---------------------|---------------|-------------------|----------------|------------------------|----------|\n| WebGpu  | ✅                 | ✅                 | ❌                 | ✅                   | ✅             | ✅                |  ❌              | ✅ | ✅         |\n| Cuda    | ✅                 | ✅                 | ❌                 | ✅                   | ❌             | ❌                |  ❌              | ✅ | ❌         |\n| Vulkan  | ❌                 | ❌                 | ❌                 | ❌                   | ❌             | ❌                |  ❌              | ❌ |          |\n| Metal   | ❌                 | ❌                 | ❌                 | ❌                   | ❌             | ❌                |  ❌              | ❌ |          |\n| DirectX | ❌                 | ❌                 | ❌                 | ❌                   | ❌              | ❌                | ❌               | ❌ |          |\n| CPU     | ❌                 | ❌                 | ❌                 | ❌                   | ❌              | ❌                | ❌               | ❌ |          |\n| PyTorch | ❌                 | ❌                 | ❌                 | ❌                   | ❌              | ❌                | ❌               | ❌ |          |\n| OptiX   | ❌                 | ❌                 | ❌                 | ❌                   | ❌              | ❌                | ❌               | ❌ |          |\n| OpenCL  | ❌                 | ❌                 | ❌                 | ❌                   | ❌              | ❌                | ❌               | ❌ |          |\n\n### Other features\n\n**slang-hal** also provides utilities for:\n- Writing device-side gpu code in a backend-agnostic way, with the ability to reuse the same code on multiple backend\n  even within the same executable.\n- Sharing Slang shaders across Rust crates (directly through `cargo`. No need to deal with include paths).\n- Checking slang shader validity at compile-time (i.e. when running `cargo build`, `cargo check`, etc.)\n- Generating boilerplate and helper functions for loading a shader from Rust and launching its compute pipeline.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdimforge%2Fslang-hal","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdimforge%2Fslang-hal","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdimforge%2Fslang-hal/lists"}