PageSourceSearch

https://wasmcloud.com/assets/js/c4d4721b.39301ea1.js

js wasmcloud.com collected 2026-10-02 04:54:00 UTC 25,942 bytes, 1 lines download raw bytes

1"use strict";(self.webpackChunkwasmcloud_com=self.webpackChunkwasmcloud_com||[]).push([["11525"],{30954:function(e,n,o){o.r(n),o.d(n,{assets:()=>d,contentTitle:()=>c,default:()=>p,frontMatter:()=>l,metadata:()=>t,toc:()=>h});var t=o(81436),s=o(85893),a=o(50065),i=o(15655),r=o.n(i);let l={date:"2025-01-08",title:"wasmCloud Monorepos & Composing Wasm Components Across Languages",description:"wasmCloud community call on the Wasm component model: new Go and TypeScript monorepos, plus a demo composing Rust and Node.js components with JCO and wac.",keywords:["wasmcloud","webassembly","wasm component model","wasm components","jco","go webassembly","rust webassembly","wasi"],chapters:[{seconds:202,label:"Welcome and agenda for the January 8 call"},{seconds:293,label:"Consolidating Go libraries into the wasmCloud/go monorepo"},{seconds:671,label:"Experimental packages and the X namespace"},{seconds:825,label:"The TypeScript monorepo and Changesets for contributors"},{seconds:1315,label:"Syncing example docs into the wasmCloud site"},{seconds:1483,label:"Demo: composing Rust and Node.js components with JCO and wac"},{seconds:1870,label:'What is C2PA? Content provenance and "SBOM for content"'},{seconds:1955,label:"Q1 2025 roadmap planning kickoff"},{seconds:2145,label:"Q&A: how to anticipate new interface versions"},{seconds:2234,label:"Bailey on the WASI train release model"}],image:"https://i.ytimg.com/vi/3ytu_yD5ezw/maxresdefault.jpg",duration:2449,showTitle:!0,slug:"2025-01-08-community-meeting",speakers:["liam-randall","joonas-bergius","lachlan-heywood","taylor-thomas","colin-murphy","eric-gregory","bailey-hayes"],about:"wasmCloud",mentions:["WebAssembly","Go","Rust","JCO","TypeScript","wac","OpenTelemetry","TinyGo"]},c=void 0,d={authorsImageUrls:[]},h=[{value:"Key Takeaways",id:"key-takeaways",level:2},{value:"Chapters",id:"chapters",level:2},{value:"Meeting Notes",id:"meeting-notes",level:2},{value:"Consolidating the Go Ecosystem under <code>wasmCloud/go</code>",id:"consolidating-the-go-ecosystem-under-wasmcloudgo",level:3},{value:"An Experimental <code>x</code> Namespace",id:"an-experimental-x-namespace",level:3},{value:"The TypeScript Monorepo and Changesets",id:"the-typescript-monorepo-and-changesets",level:3},{value:"Syncing Examples into the Docs, and the C2PA Demo",id:"syncing-examples-into-the-docs-and-the-c2pa-demo",level:3},{value:"What C2PA Is, and the Q1 2025 Roadmap",id:"what-c2pa-is-and-the-q1-2025-roadmap",level:3},{value:"WebAssembly News and Updates",id:"webassembly-news-and-updates",level:2},{value:"What is wasmCloud?",id:"what-is-wasmcloud",level:2},{value:"Topic Deep Dive: The Wasm Component Model",id:"topic-deep-dive-the-wasm-component-model",level:2},{value:"Who Should Watch This",id:"who-should-watch-this",level:2},{value:"Up Next",id:"up-next",level:2},{value:"Get Involved",id:"get-involved",level:2},{value:"Full Transcript",id:"full-transcript",level:2}];function m(e){let n={a:"a",code:"code",h2:"h2",h3:"h3",li:"li",p:"p",strong:"strong",ul:"ul",...(0,a.a)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:["\n",(0,s.jsx)(r(),{url:"https://www.youtube.com/watch?v=3ytu_yD5ezw"}),"\n",(0,s.jsx)("div",{style:{textAlign:"right",marginTop:"0.25rem",marginBottom:"1.5rem"},children:(0,s.jsx)("small",{children:(0,s.jsx)("a",{href:"https://www.youtube.com/watch?v=3ytu_yD5ezw",target:"_blank",rel:"noopener noreferrer",children:"Watch on YouTube \u2197"})})}),"\n",(0,s.jsxs)(n.p,{children:["The January 8, 2025 wasmCloud community call is about making the project's polyglot tooling easier to find and contribute to \u2014 and about what the ",(0,s.jsx)(n.strong,{children:"Wasm component model"})," unlocks once you do. Joonas Bergius walks through the new ",(0,s.jsx)(n.code,{children:"wasmCloud/go"})," monorepo and its experimental ",(0,s.jsx)(n.code,{children:"x"})," namespace, Lachlan Heywood shows the matching ",(0,s.jsx)(n.code,{children:"wasmCloud/typescript"})," repo and a Changesets-based contribution flow, and Colin Murphy demos composing a Rust component with a Node.js component using JCO and wac to build a C2PA content-credentials handler. The call closes with a reminder about Q1 2025 roadmap planning and a Q&A on how WASI and wasmCloud interface versions are released."]}),"\n","\n",(0,s.jsx)(n.h2,{id:"key-takeaways",children:"Key Takeaways"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsxs)(n.strong,{children:["The ",(0,s.jsx)(n.code,{children:"wasmCloud/go"})," monorepo"]})," consolidates the Go component SDK, provider SDK, client libraries, examples, and templates under a single namespace and vanity URL, so the upstream Go module cache makes the move seamless and existing imports keep working"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsxs)(n.strong,{children:["An experimental ",(0,s.jsx)(n.code,{children:"x"})," namespace"]})," gives the Go ecosystem a place to ship in-progress ideas \u2014 like an OpenTelemetry exporter usable from inside a component (gated today by TinyGo's Protocol Buffers limitations) and a Go client library for talking to wasmCloud"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsxs)(n.strong,{children:["The ",(0,s.jsx)(n.code,{children:"wasmCloud/typescript"})," monorepo"]}
1)," does the same for TypeScript/JavaScript, housing the washboard app plus the ",(0,s.jsx)(n.code,{children:"lattice-client-core"})," and ",(0,s.jsx)(n.code,{children:"lattice-client-react"})," packages, with NPM releases automated off tag pushes"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Changesets"})," is being trialed to lower the bar for new contributors \u2014 maintainers can add a changeset file to a PR instead of asking contributors to rewrite and force-push Conventional Commits"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Example READMEs now sync nightly into the docs site"}),", making every example searchable and linkable at wasmcloud.com starting with Go and expanding to other languages"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Colin's C2PA demo composes two components in different languages"})," \u2014 a Rust component that reads content-credential provenance and a Node.js front door \u2014 fused with ",(0,s.jsx)(n.strong,{children:"wac"})," and run via ",(0,s.jsx)(n.strong,{children:"JCO"}),", all from a single WIT interface"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:'C2PA is "an SBOM for content"'}),": provenance metadata signed into images, video, and PDFs, backed by camera makers, Adobe, and major platforms \u2014 a strong real-world case for component composition"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:'WASI interfaces follow a "train" release model'})," (a regular cadence every couple of months until WASI 0.3), while draft interfaces can be cut anytime and wasmCloud-namespaced interfaces roll more slowly for stability"]}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"chapters",children:"Chapters"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://youtu.be/3ytu_yD5ezw?t=202",children:"3:22 \u2014 Welcome and agenda for the January 8 call"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://youtu.be/3ytu_yD5ezw?t=293",children:"4:53 \u2014 Consolidating Go libraries into the wasmCloud/go monorepo"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://youtu.be/3ytu_yD5ezw?t=671",children:"11:11 \u2014 Experimental packages and the X namespace"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://youtu.be/3ytu_yD5ezw?t=825",children:"13:45 \u2014 The TypeScript monorepo and Changesets for contributors"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://youtu.be/3ytu_yD5ezw?t=1315",children:"21:55 \u2014 Syncing example docs into the wasmCloud site"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://youtu.be/3ytu_yD5ezw?t=1483",children:"24:43 \u2014 Demo: composing Rust and Node.js components with JCO and wac"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://youtu.be/3ytu_yD5ezw?t=1870",children:'31:10 \u2014 What is C2PA? Content provenance and "SBOM for content"'})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://youtu.be/3ytu_yD5ezw?t=1955",children:"32:35 \u2014 Q1 2025 roadmap planning kickoff"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://youtu.be/3ytu_yD5ezw?t=2145",children:"35:45 \u2014 Q&A: how to anticipate new interface versions"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://youtu.be/3ytu_yD5ezw?t=2234",children:"37:14 \u2014 Bailey on the WASI train release model"})}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"meeting-notes",children:"Meeting Notes"}),"\n",(0,s.jsxs)(n.h3,{id:"consolidating-the-go-ecosystem-under-wasmcloudgo",children:["Consolidating the Go Ecosystem under ",(0,s.jsx)(n.code,{children:"wasmCloud/go"})]}),"\n",(0,s.jsxs)(n.p,{children:["With Brooks on vacation, Liam Randall hosted and handed off to ",(0,s.jsx)(n.strong,{children:"Joonas Bergius"}),", who walked through the consolidation of most of the project's Go repositories into a single ",(0,s.jsx)(n.code,{children:"wasmCloud/go"})," namespace. Building components, providers, client libraries, examples, and templates now live in one place, surfaced through a self-explanatory top-level layout and a README that explains each folder. Code that used to live under repos like ",(0,s.jsx)(n.code,{children:"component-sdk-go"})," now sits at ",(0,s.jsx)(n.code,{children:"wasmCloud/go/component"}),", published through the existing ",(0,s.jsx)(n.code,{children:"go.wasmcloud.dev"})," vanity URLs \u2014 so thanks to upstream Go's module caching, existing imports keep resolving and the migration is effectively invisible to consumers. The lone holdout is ",(0,s.jsx)(n.strong,{children:"wadge"}),", which bundles enough different technologies that the team has not yet decided whether it belongs in the monorepo. Joonas also gave a shout-out to Eric Gregory for pointing the ",(0,s.jsx)(n.a,{href:"/docs/",children:"wasmCloud docs"})," at the new repository."]}),"\n",(0,s.jsxs)(n.h3,{id:"an-experimental-x-namespace",children:["An Experimental ",(0,s.jsx)(n.code,{children:"x"})," Namespace"]}),"\n",(0,s.jsxs)(n.p,{children:["Joonas introduced a new ",(0,s.jsxs)(n.strong,{children:[(0,s.jsx)(n.code,{children:"x"})," (experimental) namespace"]})," under the Go vanity URL for ideas that are usable but not yet finalized. The first example is an ",(0,s.jsx)(n.strong,{children:"OpenTelemetry exporter"})," that lets you emit OTel signals from inside a WebAssembly component; it depends on a now-released TinyGo 0.35 and is held back from top-level status mainly because TinyGo's Protocol Buffers support doesn't yet cover all exporter formats, so it takes some care to wire up. A second ",(0,s.jsx)(n.code,{children:"x"})," package \u2014 a Go client library, contributed by Lucas, for consuming wasmCloud events and talking to a host using plain Go structs \u2014 rounds out the namespace. Asked whether the main (Rust) wasmCloud repo would get a similar experimental space, Taylor noted the ",(0,s.jsx)(n.code,{children:"x"})," pattern is idiomatic Go; the Rust side leans on feature flags instead (e.g. a couple of experimental ",(0,s.jsx)(n.code,{children:"wash"})," features and the 1.5-era host built-ins), with more experimental surface likely arriving over the coming months."]}),"\n",(0,s.jsx)(n.h3,{id:"the-typescript-monorepo-and-changesets",children:"The TypeScript Monorepo and Changesets"}),"\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"Lachlan Heywood"})," showed the parallel ",(0,s.jsx)(n.strong,{children:(0,s.jsx)(n.code,{children:"wasmCloud/typescript"})})," monorepo, which gathers the TypeScript/JavaScript libraries, examples, and the ",(0,s.jsx)(n.strong,{children:"washboard"})," app. The two packages publishing to NPM today \u2014 ",(0,s.jsx)(n.code,{children:"lattice-client-core"})," and ",(0,s.jsx)(n.code,{children:"lattice-client-react"})," \u2014 release automatically from this repo on a tag push. To lower the barrier for new contributors, Lachlan is trialing ",(0,s.jsx)(n.strong,{children:"Changesets"}),": rather than requiring contributors to learn Conventional Commits and force-push reworded commits, a maintainer can drop a small Markdown changeset file onto a PR, and the tooling then versions the affected packages and opens a follow-up release PR. It keeps descriptive changelogs without adding friction \u2014 an experiment the team will keep or drop based on how it plays out."]}),"\n",(0,s.jsx)(n.h3,{id:"syncing-examples-into-the-docs-and-the-c2pa-demo",children:"Syncing Examples into the Docs, and the C2PA Demo"}),"\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"Taylor"})," demonstrated automation that syncs example READMEs into the ",(0,s.jsx)(n.a,{href:"/docs/examples/",children:"wasmcloud.com docs"})," nightly \u2014 starting with Go and generalizable to every language \u2014 so examples become fully searchable and linkable on the site, with Eric Gregory layering in tutorial-quality framing. Then ",(0,s.jsx)(n.strong,{children:"Colin Murphy"})," demoed a personal open-source project, ",(0,s.jsx)(n.a,{href:"https://github.com/cdmurph32/c2pa-component",children:"c2pa-component"}),": a ",(0,s.jsx)(n.strong,{children:"Rust"})," component (built from a WIT interface derived from a C2PA/Python SDK) that reads an image's content-credential provenance, composed via ",(0,s.jsx)(n.strong,{children:"wac"})," with a ",(0,s.jsx)(n.strong,{children:"Node.js"})," component built using ",(0,s.jsx)(n.strong,{children:(0,s.jsx)(n.a,{href:"https://github.com/bytecodealliance/jco",children:"JCO"})})," into a single fused ",(0,s.jsx)(n.code,{children:".wasm"}
1),". The Node side handles an incoming HTTP POST, streams the binary into the Rust component, and returns the asset's C2PA manifest. The key insight: one WIT file can generate both CLIs and HTTP handlers across languages, and you can swap transports or languages freely \u2014 exactly the promise of the ",(0,s.jsx)(n.a,{href:"/docs/overview/workloads/components/",children:"WebAssembly component model"}),"."]}),"\n",(0,s.jsx)(n.h3,{id:"what-c2pa-is-and-the-q1-2025-roadmap",children:"What C2PA Is, and the Q1 2025 Roadmap"}),"\n",(0,s.jsxs)(n.p,{children:["For context, ",(0,s.jsx)(n.strong,{children:"C2PA"})," (the ",(0,s.jsx)(n.a,{href:"https://opensource.contentauthenticity.org/docs/c2patool/",children:"Coalition for Content Provenance and Authenticity"}),') embeds and cryptographically signs provenance metadata into images, video, and PDFs \u2014 Joonas framed it memorably as "an SBOM for content." With camera makers, Adobe, news sites, Meta, and Google on board, it\'s a strong real-world case for composing a security-sensitive Rust component (image analysis, cryptography) with a front door in any other language. Liam closed by reminding everyone that the following Wednesday would be the ',(0,s.jsx)(n.strong,{children:"Q1 2025 roadmap planning"})," meeting, run from the ",(0,s.jsx)(n.a,{href:"https://github.com/wasmcloud/wasmcloud/discussions",children:"wasmCloud GitHub Discussions roadmap thread"}),", with Brooks leading the first session before maintainers begin rotating through."]}),"\n",(0,s.jsx)(n.h2,{id:"webassembly-news-and-updates",children:"WebAssembly News and Updates"}),"\n",(0,s.jsxs)(n.p,{children:["The throughline of this call is developer experience for the ",(0,s.jsx)(n.a,{href:"https://component-model.bytecodealliance.org/",children:"WebAssembly component model"})," across languages \u2014 the same composition story that landed wasmCloud's 1.0 release (see ",(0,s.jsx)(n.a,{href:"/blog/wasmcloud-1-brings-components-to-enterprise/",children:"wasmCloud 1 Brings Components to the Enterprise"}),"). Consolidating the Go and TypeScript ecosystems into monorepos \u2014 with vanity-URL stability, automated NPM releases, and Changesets-driven contribution \u2014 makes it materially easier to build and ship components in ",(0,s.jsx)(n.a,{href:"/docs/wash/developer-guide/language-support/",children:"Go"})," and ",(0,s.jsx)(n.a,{href:"/docs/wash/developer-guide/language-support/",children:"TypeScript"}),". On the tooling side, ",(0,s.jsx)(n.a,{href:"https://github.com/bytecodealliance/jco",children:"JCO"})," and ",(0,s.jsx)(n.a,{href:"https://github.com/bytecodealliance/wac",children:"wac"})," let a single WIT interface drive a fused, multi-language component, as Colin's C2PA demo showed. And the Q&A clarified how the broader ",(0,s.jsx)(n.a,{href:"https://wasi.dev/",children:"WASI"})," interface ecosystem ships: a predictable train release model under the ",(0,s.jsx)(n.a,{href:"https://github.com/WebAssembly",children:"W3C WebAssembly Community Group"}),", fast-moving draft interfaces, and slower, stability-minded wasmCloud-namespaced interfaces. For more, follow the ",(0,s.jsx)(n.a,{href:"https://bytecodealliance.org/",children:"Bytecode Alliance"})," and the WASI subgroup."]}),"\n",(0,s.jsx)(n.h2,{id:"what-is-wasmcloud",children:"What is wasmCloud?"}),"\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.a,{href:"https://wasmcloud.com/",children:"wasmCloud"})," is a CNCF project that lets you build applications using ",(0,s.jsx)(n.a,{href:"/docs/overview/workloads/components/",children:"WebAssembly components"})," and deploy them anywhere \u2014 cloud, edge, or Kubernetes clusters. It uses the ",(0,s.jsx)(n.a,{href:"/docs/overview/workloads/components/",children:"WebAssembly component model"})," to let you write business logic in any supported language (Rust, Go, Python, TypeScript, C#, and more) while the platform handles capabilities like HTTP, messaging, and key-value storage through a pluggable provider architecture. wasmCloud's reference host is built on ",(0,s.jsx)(n.a,{href:"https://wasmtime.dev/",children:"Wasmtime"}),", and components are distributed as ",(0,s.jsx)(n.a,{href:"/docs/overview/packaging/",children:"OCI artifacts"})," and wired together over ",(0,s.jsx)(n.a,{href:"/docs/overview/transport/",children:"NATS"}),". With built-in OpenTelemetry observability and ",(0,s.jsx)(n.a,{href:"/docs/kubernetes-operator/",children:"Kubernetes integration"}),", wasmCloud bridges WebAssembly's portable, sandboxed execution model and production cloud-native infrastru
1cture."]}),"\n",(0,s.jsx)(n.h2,{id:"topic-deep-dive-the-wasm-component-model",children:"Topic Deep Dive: The Wasm Component Model"}),"\n",(0,s.jsxs)(n.p,{children:["Every demo in this meeting traces back to the ",(0,s.jsx)(n.strong,{children:(0,s.jsx)(n.a,{href:"https://component-model.bytecodealliance.org/",children:"Wasm component model"})}),". The Go and TypeScript monorepos exist to make it easier to author and publish ",(0,s.jsx)(n.a,{href:"/docs/overview/workloads/components/",children:"components"})," in those languages \u2014 generating typed bindings from a ",(0,s.jsx)(n.a,{href:"/docs/overview/interfaces/",children:"WIT interface"})," and packaging the result as a portable ",(0,s.jsx)(n.a,{href:"/docs/overview/packaging/",children:"OCI artifact"}),". Colin's C2PA demo is the component model's headline benefit made concrete: a Rust component and a Node.js component, generated from one WIT file, ",(0,s.jsx)(n.strong,{children:"composed"})," with ",(0,s.jsx)(n.a,{href:"https://github.com/bytecodealliance/wac",children:"wac"})," into a single fused module that runs through ",(0,s.jsx)(n.a,{href:"https://github.com/bytecodealliance/jco",children:"JCO"})," \u2014 two languages cooperating through typed interfaces without either side trusting the other's internals. Because the interface is the contract, you can swap the transport (CLI or HTTP) or re-implement a side in Go or Python without touching the rest. As more language toolchains reach full component-model support, \"write a component once, compose it with any other language\" moves from promise to everyday practice \u2014 and it's the foundation wasmCloud's ",(0,s.jsx)(n.a,{href:"/docs/overview/workloads/",children:"components and services"})," are built on."]}),"\n",(0,s.jsx)(n.h2,{id:"who-should-watch-this",children:"Who Should Watch This"}),"\n",(0,s.jsxs)(n.p,{children:["This call is especially valuable for ",(0,s.jsx)(n.strong,{children:"Go developers"})," building Wasm components who want one place to find the SDKs, examples, and experimental packages (Joonas's ",(0,s.jsx)(n.code,{children:"wasmCloud/go"})," tour at ",(0,s.jsx)(n.a,{href:"https://youtu.be/3ytu_yD5ezw?t=293",children:"4:53"}),"), ",(0,s.jsx)(n.strong,{children:"TypeScript and JavaScript developers"})," tracking the consolidated repo and a lower-friction contribution flow (Lachlan's Changesets walkthrough at ",(0,s.jsx)(n.a,{href:"https://youtu.be/3ytu_yD5ezw?t=825",children:"13:45"}),"), and ",(0,s.jsx)(n.strong,{children:"anyone evaluating cross-language component composition"})," \u2014 including content-provenance and C2PA use cases \u2014 who should watch Colin's Rust-plus-Node.js demo at ",(0,s.jsx)(n.a,{href:"https://youtu.be/3ytu_yD5ezw?t=1483",children:"24:43"}),"."]}),"\n",(0,s.jsx)(n.h2,{id:"up-next",children:"Up Next"}),"\n",(0,s.jsxs)(n.p,{children:["The next community call is the ",(0,s.jsx)(n.strong,{children:"Q1 2025 roadmap planning"})," session, held the following Wednesday and driven by the ",(0,s.jsx)(n.a,{href:"https://github.com/wasmcloud/wasmcloud/discussions",children:"wasmCloud GitHub Discussions roadmap thread"}),". Expect the maintainers to turn community feedback into the quarter's priorities, with Brooks leading the first session before the team begins rotating facilitation across project maintainers. Drop your input in the discussion thread, in ",(0,s.jsx)(n.a,{href:"https://slack.wasmcloud.com/",children:"Slack"}),", or wherever is easiest."]}),"\n","\n",(0,s.jsx)(n.h2,{id:"get-involved",children:"Get Involved"}),"\n",(0,s.jsx)(n.p,{children:"wasmCloud is a CNCF project and contributions are welcome. Join the community:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.a,{href:"https://github.com/wasmcloud/wasmcloud",children:"GitHub"})," \u2014 star the repo and check out open issues"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.a,{href:"https://slack.wasmcloud.com/",children:"Slack"})," \u2014 join the conversation"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.a,{href:"https://wasmcloud.com/community/",children:"Community Meetings"})," \u2014 every Wednesday at 1:00 PM ET"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.a,{href:"https://wasmcloud.com/blog/",children:"wasmCloud Blog"})," \u2014 latest news and releases"]}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"full-transcript",children:"Full Transcript"}),"\n",(0,s.jsx)(n.p,{children:"Read the complete transcript with speaker labels and timestamps:"}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.strong,{children:(0,s.jsx)(n.a,{href:"/community/2025-01-08-community-meeting-transcript/",children:"Read the full transcript \u2192"})})})]})}function p(e={}){let{wrapper:n}={...(0,a.a)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(m,{...e})}):m(e)}},50065:function(e,n,o){o.d(n,{Z:()=>r,a:()=>i});var t=o(67294);let s={},a=t.createContext(s);function i(e){let n=t.useContext(a);return t.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function r(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:i(e.components),t.createElement(a.Provider,{value:n},e.children)}},81436:function(e){e.exports=JSON.parse('{"permalink":"/community/2025-01-08-community-meeting","editUrl":"https://github.com/wasmCloud/wasmcloud.com-dev/edit/main/community/2025-01-08-community-meeting.mdx","source":"@site/community/2025-01-08-community-meeting.mdx","title":"wasmCloud Monorepos & Composing Wasm Components Across 
1Languages","description":"wasmCloud community call on the Wasm component model: new Go and TypeScript monorepos, plus a demo composing Rust and Node.js components with JCO and wac.","date":"2025-01-08T00:00:00.000Z","tags":[],"hasTruncateMarker":true,"authors":[],"frontMatter":{"date":"2025-01-08","title":"wasmCloud Monorepos & Composing Wasm Components Across Languages","description":"wasmCloud community call on the Wasm component model: new Go and TypeScript monorepos, plus a demo composing Rust and Node.js components with JCO and wac.","keywords":["wasmcloud","webassembly","wasm component model","wasm components","jco","go webassembly","rust webassembly","wasi"],"chapters":[{"seconds":202,"label":"Welcome and agenda for the January 8 call"},{"seconds":293,"label":"Consolidating Go libraries into the wasmCloud/go monorepo"},{"seconds":671,"label":"Experimental packages and the X namespace"},{"seconds":825,"label":"The TypeScript monorepo and Changesets for contributors"},{"seconds":1315,"label":"Syncing example docs into the wasmCloud site"},{"seconds":1483,"label":"Demo: composing Rust and Node.js components with JCO and wac"},{"seconds":1870,"label":"What is C2PA? Content provenance and \\"SBOM for content\\""},{"seconds":1955,"label":"Q1 2025 roadmap planning kickoff"},{"seconds":2145,"label":"Q&A: how to anticipate new interface versions"},{"seconds":2234,"label":"Bailey on the WASI train release model"}],"image":"https://i.ytimg.com/vi/3ytu_yD5ezw/maxresdefault.jpg","duration":2449,"showTitle":true,"slug":"2025-01-08-community-meeting","speakers":["liam-randall","joonas-bergius","lachlan-heywood","taylor-thomas","colin-murphy","eric-gregory","bailey-hayes"],"about":"wasmCloud","mentions":["WebAssembly","Go","Rust","JCO","TypeScript","wac","OpenTelemetry","TinyGo"]},"unlisted":false,"prevItem":{"title":"Transcript: wasmCloud Monorepos & Composing Wasm Components Across Languages","permalink":"/community/2025-01-08-community-meeting-transcript"},"nextItem":{"title":"Meeting Agenda - 2025-01-02","permalink":"/community/2025/01/02/community-meeting"}}')}}]);

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.