{"id":21659539,"url":"https://github.com/bytecodealliance/jco","last_synced_at":"2026-04-18T12:06:08.542Z","repository":{"id":65028565,"uuid":"576428611","full_name":"bytecodealliance/jco","owner":"bytecodealliance","description":"JavaScript toolchain for working with WebAssembly Components","archived":false,"fork":false,"pushed_at":"2026-03-30T04:26:01.000Z","size":393356,"stargazers_count":934,"open_issues_count":52,"forks_count":105,"subscribers_count":13,"default_branch":"main","last_synced_at":"2026-03-30T04:30:10.961Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://bytecodealliance.github.io/jco/","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/bytecodealliance.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":"CODEOWNERS","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":"2022-12-09T20:51:46.000Z","updated_at":"2026-03-30T04:25:37.000Z","dependencies_parsed_at":"2025-05-13T16:41:28.633Z","dependency_job_id":"1b2117dc-8ce8-4fb7-ad12-33cded6e3a84","html_url":"https://github.com/bytecodealliance/jco","commit_stats":{"total_commits":117,"total_committers":12,"mean_commits":9.75,"dds":"0.41880341880341876","last_synced_commit":"c99968c1097971e384d2793054b8bf9eade7afa8"},"previous_names":["bytecodealliance/js-component-tools"],"tags_count":145,"template":false,"template_full_name":null,"purl":"pkg:github/bytecodealliance/jco","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bytecodealliance%2Fjco","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bytecodealliance%2Fjco/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bytecodealliance%2Fjco/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bytecodealliance%2Fjco/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/bytecodealliance","download_url":"https://codeload.github.com/bytecodealliance/jco/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bytecodealliance%2Fjco/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31291042,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-01T13:12:26.723Z","status":"ssl_error","status_checked_at":"2026-04-01T13:12:25.102Z","response_time":53,"last_error":"SSL_read: 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":"2024-11-25T09:31:11.510Z","updated_at":"2026-04-01T19:05:09.867Z","avatar_url":"https://github.com/bytecodealliance.png","language":"Rust","readme":"\u003cdiv align=\"center\"\u003e\n  \u003ch1\u003e\u003ccode\u003ejco\u003c/code\u003e\u003c/h1\u003e\n\n  \u003cp\u003e\n    \u003cstrong\u003eJavaScript tooling for \u003ca href=\"https://github.com/WebAssembly/component-model\"\u003eWebAssembly Components\u003c/a\u003e\u003c/strong\u003e\n  \u003c/p\u003e\n\n  \u003cstrong\u003eA \u003ca href=\"https://bytecodealliance.org/\"\u003eBytecode Alliance\u003c/a\u003e project\u003c/strong\u003e\n\n  \u003cp\u003e\n    \u003ca href=\"https://github.com/bytecodealliance/jco/actions?query=workflow%3ACI\"\u003e\u003cimg src=\"https://github.com/bytecodealliance/jco/workflows/CI/badge.svg\" alt=\"build status\" /\u003e\u003c/a\u003e\n  \u003c/p\u003e\n\n  \u003ch3\u003e\n    \u003ca href=\"https://bytecodealliance.github.io/jco/\"\u003eContributing\u003c/a\u003e\n    \u003cspan\u003e | \u003c/span\u003e\n    \u003ca href=\"https://bytecodealliance.zulipchat.com/#narrow/stream/409526-jco\"\u003eChat on Zulip\u003c/a\u003e\n  \u003c/h3\u003e\n\u003c/div\u003e\n\n## Overview\n\nJco (`jco`) provides a [Javascript][js]-native toolchain for working with [WebAssembly Components][cm-book].\n\n**Jco aims to be a convenient multi-tool for the JS WebAssembly ecosystem.**\n\nWith Jco (and related projects in this repository), you can:\n\n- **Build WebAssembly components** from Javascript/Typescript with the help of [`componentize-js`][cjs]\n- **\"Transpile\" WebAssembly components** into ES modules that can run in environments like NodeJS and the browser, combining platform-native WebAssembly core support with the advanced features of WebAssembly Components\n- **Run WebAssembly components** whether single-shot applications or web servers (similar to [`wasmtime run`][wasmtime-run]/[`wasmtime serve`][wasmtime-serve])\n- **Reuse WebAssembly component workflows** (e.g. building components, tranpsiling, etc) from your own JS projects\n- **Utilize [`wasm-tools`][wt]** as a library from JS\n\n[cm-book]: https://component-model.bytecodealliance.org/\n[js]: https://developer.mozilla.org/en-US/docs/Web/JavaScript\n[cjs]: https://github.com/bytecodealliance/componentize-js\n[wt]: https://github.com/bytecodealliance/wasm-tools\n[wasmtime-serve]: https://docs.wasmtime.dev/cli-options.html#serve\n[wasmtime-run]: https://docs.wasmtime.dev/cli-options.html#run\n\n## Organization\n\nAs Jco aims to do many things, it contains many subprojects that are organized in this repository:\n\n| Subproject                       | Language   | Directory                               | Description                                                                                     |\n|----------------------------------|------------|-----------------------------------------|-------------------------------------------------------------------------------------------------|\n| `jco`                            | Javascript | `packages/jco`                          | The `jco` CLI                                                                                   |\n| `jco-transpile`                  | Javascript | `packages/jco-transpile`                | WebAssembly Component Transpilation functionaltiy                                               |\n| `preview2-shim`                  | Javascript | `packages/preview2-shim`                | Library that provides a mapping of [WASI Preview 2][wasi-p2] for NodeJS and Browsers            |\n| `preview3-shim`                  | Javascript | `packages/preview3-shim`                | Library that provides a mapping of WASI Preview 3 for NodeJS                                    |\n| `js-component-bindgen`           | Rust       | `crates/js-component-bindgen`           | Enables `jco transpile` and other features, reusing the Rust WebAssembly ecosystem              |\n| `js-component-bindgen-component` | Rust       | `crates/js-component-bindgen-component` | WebAssembly component that (when transipled) makes `js-component-bindgen` available in JS `jco` |\n| `wasm-tools-component`           | Rust       | `crates/wasm-tools-component`           | WebAssembly component containing pieces of [`wasm-tools`][wt] used by `jco`                     |\n\n[wasi-p2]: https://github.com/WebAssembly/WASI/tree/main/wasip2\n\n## Quickstart\n\nJco can be used as either a library import or as a CLI via the `jco` command.\n\nTo install it, use `npm` (or your favorite `npm` equivalent):\n\n```console\nnpm install @bytecodealliance/jco\n```\n\n\u003e [!NOTE]\n\u003e If you're using jco to build components, you should also install `componentize-js`, which is dynamically imported:\n\u003e\n\u003e ```console\n\u003e npm install @bytecodealliance/componentize-js\n\u003e ```\n\n### Building an example component\n\nFor instructions on how to build an example component, see the [Component model section on Javascript][cm-book-js].\n\nTo see examples of common patterns, check out the [example components folder (`examples/components`)](./examples/components).\n\n[cm-book-js]: https://component-model.bytecodealliance.org/language-support/javascript.html\n\n## Learn more\n\nFor a deeper guide on the intricacies of Jco, read the [Jco Book][jco-book].\n\n[jco-book]: https://bytecodealliance.github.io/jco/\n\n## License\n\nThis project is licensed under the Apache 2.0 license with the LLVM exception.\nSee [LICENSE](LICENSE) for more details.\n\n## Contributing\n\nSee the [Contributing](https://bytecodealliance.github.io/jco/contributing.html) chapter of the Jco book.\n\nUnless you explicitly state otherwise, any contribution intentionally submitted\nfor inclusion in this project by you, as defined in the Apache-2.0 license,\nshall be licensed as above, without any additional terms or conditions.\n","funding_links":[],"categories":["Rust","Tools"],"sub_categories":["Programming Language Support"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbytecodealliance%2Fjco","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbytecodealliance%2Fjco","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbytecodealliance%2Fjco/lists"}