{"id":21659537,"url":"https://github.com/bytecodealliance/wit-deps","last_synced_at":"2025-07-12T01:13:21.035Z","repository":{"id":150671048,"uuid":"623418558","full_name":"bytecodealliance/wit-deps","owner":"bytecodealliance","description":"WIT dependency manager","archived":false,"fork":false,"pushed_at":"2025-05-26T13:46:34.000Z","size":478,"stargazers_count":69,"open_issues_count":24,"forks_count":9,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-07-12T00:44:57.104Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/bytecodealliance.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","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-04-04T10:33:23.000Z","updated_at":"2025-06-03T07:48:10.000Z","dependencies_parsed_at":"2023-11-11T12:25:27.667Z","dependency_job_id":"3fc5946b-27ef-4160-b532-7879b1216191","html_url":"https://github.com/bytecodealliance/wit-deps","commit_stats":null,"previous_names":["rvolosatovs/depit"],"tags_count":17,"template":false,"template_full_name":null,"purl":"pkg:github/bytecodealliance/wit-deps","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bytecodealliance%2Fwit-deps","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bytecodealliance%2Fwit-deps/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bytecodealliance%2Fwit-deps/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bytecodealliance%2Fwit-deps/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/bytecodealliance","download_url":"https://codeload.github.com/bytecodealliance/wit-deps/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bytecodealliance%2Fwit-deps/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":264922908,"owners_count":23683705,"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-25T09:31:11.473Z","updated_at":"2025-07-12T01:13:21.014Z","avatar_url":"https://github.com/bytecodealliance.png","language":"Rust","readme":"# Description\n\n`wit-deps` is a simple WIT dependency manager binary and Rust library, which manages your `wit/deps`. It's main objective is to ensure that whatever is located in your `wit/deps` is consistent with your dependency manifest (default: `wit/deps.toml`) and dependency lock (default: `wit/deps.lock`).\n\n# Manifest\n\nA dependency manifest is a TOML-encoded table mapping dependency names to their source specifications. In it's simplest form, a source specification is a URL string of a gzipped tarball containing a directory tree with a `wit` subdirectory containing `wit` files.\n\nExample:\n\n```toml\n# wit/deps.toml\n# Use `wit-deps update` to pull in latest changes from \"dynamic\" branch references\nclocks = \"https://github.com/WebAssembly/wasi-clocks/archive/main.tar.gz\"\nhttp = \"https://github.com/WebAssembly/wasi-http/archive/main.tar.gz\"\nmessaging = \"https://github.com/WebAssembly/wasi-messaging/archive/main.tar.gz\"\nsockets = \"https://github.com/WebAssembly/wasi-sockets/archive/main.tar.gz\"\nsql = \"https://github.com/WebAssembly/wasi-sql/archive/main.tar.gz\"\n\n# Pin to a tag\nio = \"https://github.com/rvolosatovs/wasi-io/archive/v0.1.0.tar.gz\" # this fork renames `streams` interface for compatiblity with wasi-snapshot-preview1\n\n# Pin a dependency to a particular revision and source digests. Each digest is optional\n[keyvalue]\nurl = \"https://github.com/WebAssembly/wasi-keyvalue/archive/6f3bd6bca07cb7b25703a13f633e05258d56a2dc.tar.gz\"\nsha256 = \"1755b8f1e9f2e70d0bde06198bf50d12603b454b52bf1f59064c1877baa33dff\"\nsha512 = \"7bc43665a9de73ec7bef075e32f67ed0ebab04a1e47879f9328e8e52edfb35359512c899ab8a52240fecd0c53ff9c036abefe549e5fb99225518a2e0446d66e0\"\n\n```\n\nA source specfication can also be a structure with the following fields:\n\n- `url` - same format as the URL string\n- `sha256` - (optional) hex-encoded sha256 digest of the contents of the URL\n- `sha512` (optional) hex-encoded sha512 digest of the contents of the URL\n- `path` path to the directory containing the WIT definitions\n\nEither `url` or `path` must be specified (both support string format)\n\nExample:\n\n```toml\n# wit/deps.toml\nmywit = \"./path/to/my/wit\"\n\n[logging]\nurl = \"https://github.com/WebAssembly/wasi-logging/archive/d106e59b25297d0496e6a5d221ad090e19c3aaa3.tar.gz\"\nsha256 = \"4bb4aeab99e7323b30d107aab78e88b2265c1598cc438bc5fbc0d16bb63e798f\"\nsha512 = \"13b52b59afd98dd4938e3a651fad631d41a2e84ce781df5d8957eded77a8e1ac4277e771a10225cd4a3a9eae369ed7e8fee6e26f9991a2caa7c97c4a758b1ae6\"\n```\n\n# Usage\n\nNote, `wit-deps` assumes that it has full control over `wit/deps` and so it may delete and modify contents of `wit/deps` at any time!\n\n## Interactive\n\nUse `wit-deps` or `wit-deps lock` to populate `wit/deps` using  `wit/deps.toml` manifest and `wit/deps.lock` (will be created if it does not exist)\n\nTo you it with a proxy, use the below environment variables:\n```\nexport PROXY_SERVER={yourproxyaddress}:{port}\nexport PROXY_USERNAME='{yourproxyusername}'\nexport PROXY_PASSWORD='{yourproxypassword}'\n```\n\n## Rust\n\nUse `wit-deps::lock!` macro in `build.rs` of your project to automatically lock your `wit/deps`.\n\nSee crate documentation for more advanced use cases\n\n# Design decisions\n\n- `wit-deps` is lazy by default and will only fetch/write when it absolutely has to\n- `wit-deps` assumes that result of fetching from a URL is deterministic, that is contents returned by GET of a URL `domain.com` must always return exactly the same contents. Note, that you can use `sha256` or `sha512` fields in your manifest entry to invalidate the cache in this case\n","funding_links":[],"categories":["Rust"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbytecodealliance%2Fwit-deps","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbytecodealliance%2Fwit-deps","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbytecodealliance%2Fwit-deps/lists"}