[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6FGDFNHJ2EJMWHTRPXSY2EX":3,"skill-same:01M6FGDFNHJ2EJMWHTRPXSY2EX":112},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":16,"categories":17,"keywords":18,"publishedAt":39,"linkOnly":40,"markdownContent":41,"markdownBody":42,"frontMatter":43,"refName":46,"commitSha":47,"skillDirectory":48,"forksCount":49,"repositoryHtmlUrl":50,"repositoryHomepageUrl":51,"ownerHtmlUrl":52,"ownerBlogUrl":6,"ownerDescription":53,"updatedAt":54,"install":55,"resources":68},"01M6FGDFNHJ2EJMWHTRPXSY2EX","cloudflare-workers-multi-lang",null,"Multi-language Workers development with Rust, Python, and WebAssembly. Use when building Workers in languages other than JavaScript\u002FTypeScript, or when integrating WASM modules for performance-critical code.","ComeOnOliver\u002Fskillshub","ComeOnOliver","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F43215937?v=4","01M6E5JNFECJAAVFE0W7SMWWD2","Haoran Shu","01M6E5JNNDQS7AJZDYFQ8TPZCK",66,"MIT","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fsecondsky\u002Fclaude-skills\u002Fcloudflare-workers-multi-lang\u002FSKILL.md",[],[19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38],"cloudflare workers multi lang","multi","workers","cloudflare workers","cloudflare","use","with","multi-language","critical","language","modules","typescript","webassembly","code","development","javascript","rust","performance","wasm","python","2026-11-10 10:12:30",false,"---\nname: cloudflare-workers-multi-lang\ndescription: Multi-language Workers development with Rust, Python, and WebAssembly. Use when building Workers in languages other than JavaScript\u002FTypeScript, or when integrating WASM modules for performance-critical code.\nmetadata:\n  version: \"1.0.0\"\nlicense: MIT\n---\n\n# Multi-Language Workers Development\n\nBuild Cloudflare Workers using Rust, Python, or WebAssembly for performance-critical operations.\n\n## Language Comparison\n\n| Feature | JavaScript\u002FTS | Rust | Python |\n|---------|---------------|------|--------|\n| **Startup** | Fast | Fastest (WASM) | Moderate |\n| **CPU Perf** | Good | Excellent | Good |\n| **Memory** | Higher | Lower | Higher |\n| **Bundle Size** | Smaller | Medium | Larger |\n| **Type Safety** | Optional (TS) | Strict | Optional |\n| **Best For** | General apps | CPU-intensive | Data\u002FML |\n\n## Quick Decision\n\n```\nNeed maximum performance? → Rust\u002FWASM\nHeavy computation (crypto, image processing)? → Rust\u002FWASM\nData processing, ML inference? → Python\nGeneral web apps? → JavaScript\u002FTypeScript\n```\n\n## Top 10 Multi-Lang Errors\n\n| Error | Language | Cause | Solution |\n|-------|----------|-------|----------|\n| `WebAssembly.instantiate() failed` | Rust | Invalid WASM | Check wasm-pack build output |\n| `Module parse failed: Unexpected token` | Rust | ESM\u002FCJS mismatch | Use `--target bundler` |\n| `Cannot find module` | Python | Missing dep | Add to pyproject.toml |\n| `Out of memory` | All | Large WASM | Enable streaming instantiation |\n| `Exceeded CPU time limit` | All | Long computation | Chunk processing |\n| `wasm-bindgen version mismatch` | Rust | Dep conflict | Align versions in Cargo.toml |\n| `RuntimeError: unreachable` | Rust | Panic in WASM | Add proper error handling |\n| `TypeError: not a function` | Rust | Missing export | Add `#[wasm_bindgen]` attribute |\n| `Python worker startup timeout` | Python | Slow init | Minimize imports |\n| `SharedArrayBuffer not supported` | All | Security | Add COOP\u002FCOEP headers |\n\n## Rust Quick Start\n\n```bash\n# Install tools\ncargo install wasm-pack\n\n# Create project\ncargo new --lib my-worker\ncd my-worker\n\n# Add to Cargo.toml\ncat >> Cargo.toml \u003C\u003C 'EOF'\n[lib]\ncrate-type = [\"cdylib\"]\n\n[dependencies]\nwasm-bindgen = \"0.2\"\nworker = \"0.3\"\nconsole_error_panic_hook = \"0.1\"\n\n[profile.release]\nopt-level = \"s\"\nlto = true\nEOF\n```\n\n```rust\n\u002F\u002F src\u002Flib.rs\nuse worker::*;\n\n#[event(fetch)]\nasync fn fetch(req: Request, env: Env, _ctx: Context) -> Result\u003CResponse> {\n    console_error_panic_hook::set_once();\n\n    Router::new()\n        .get(\"\u002F\", |_, _| Response::ok(\"Hello from Rust!\"))\n        .get(\"\u002Fcompute\", |_, _| {\n            \u002F\u002F CPU-intensive computation\n            let result = heavy_computation();\n            Response::ok(format!(\"Result: {}\", result))\n        })\n        .run(req, env)\n        .await\n}\n\nfn heavy_computation() -> u64 {\n    (1..1_000_000).filter(|n| is_prime(*n)).count() as u64\n}\n\nfn is_prime(n: u64) -> bool {\n    if n \u003C 2 { return false; }\n    (2..=(n as f64).sqrt() as u64).all(|i| n % i != 0)\n}\n```\n\n## Python Quick Start (Workers for Platforms)\n\n```toml\n# pyproject.toml\n[project]\nname = \"my-worker\"\nversion = \"0.1.0\"\nrequires-python = \">=3.12\"\ndependencies = []\n\n[build-system]\nrequires = [\"hatchling\"]\nbuild-backend = \"hatchling.build\"\n```\n\n```python\n# src\u002Fentry.py\nfrom js import Response, Headers\n\nasync def on_fetch(request, env):\n    url = request.url\n\n    if \"\u002Fcompute\" in url:\n        result = heavy_computation()\n        return Response.new(f\"Result: {result}\")\n\n    return Response.new(\"Hello from Python!\")\n\ndef heavy_computation():\n    \"\"\"CPU-intensive computation\"\"\"\n    return sum(1 for n in range(2, 100000) if is_prime(n))\n\ndef is_prime(n):\n    if n \u003C 2:\n        return False\n    return all(n % i != 0 for i in range(2, int(n**0.5) + 1))\n```\n\n## WASM Module Integration\n\n```typescript\n\u002F\u002F Load and use WASM module in TypeScript Worker\nimport wasmModule from '.\u002Fpkg\u002Fmy_lib_bg.wasm';\nimport { init, process_data } from '.\u002Fpkg\u002Fmy_lib';\n\nlet wasmInstance: WebAssembly.Instance;\n\nexport default {\n  async fetch(request: Request, env: Env): Promise\u003CResponse> {\n    \u002F\u002F Initialize WASM once\n    if (!wasmInstance) {\n      wasmInstance = await WebAssembly.instantiate(wasmModule);\n      init();\n    }\n\n    \u002F\u002F Use WASM function\n    const result = process_data(inputData);\n\n    return Response.json({ result });\n  },\n};\n```\n\n## When to Load References\n\n| Reference | Load When |\n|-----------|-----------|\n| `references\u002Frust-workers.md` | Building Workers with Rust\u002FWASM |\n| `references\u002Fpython-workers.md` | Using Python on Workers for Platforms |\n| `references\u002Fwasm-integration.md` | Integrating WASM modules in any Worker |\n\n## Performance Tips\n\n1. **WASM Initialization**: Cache instance, use streaming\n2. **Memory**: Use typed arrays for data transfer\n3. **Bundle Size**: Enable LTO, strip debug info\n4. **Cold Starts**: Keep WASM modules small\n5. **Data Transfer**: Minimize JS\u002FWASM boundary crossings\n\n## See Also\n\n- `workers-performance` - General optimization techniques\n- `workers-testing` - Testing multi-language Workers\n- `cloudflare-worker-base` - Basic Workers setup\n","# Multi-Language Workers Development\n\nBuild Cloudflare Workers using Rust, Python, or WebAssembly for performance-critical operations.\n\n## Language Comparison\n\n| Feature | JavaScript\u002FTS | Rust | Python |\n|---------|---------------|------|--------|\n| **Startup** | Fast | Fastest (WASM) | Moderate |\n| **CPU Perf** | Good | Excellent | Good |\n| **Memory** | Higher | Lower | Higher |\n| **Bundle Size** | Smaller | Medium | Larger |\n| **Type Safety** | Optional (TS) | Strict | Optional |\n| **Best For** | General apps | CPU-intensive | Data\u002FML |\n\n## Quick Decision\n\n```\nNeed maximum performance? → Rust\u002FWASM\nHeavy computation (crypto, image processing)? → Rust\u002FWASM\nData processing, ML inference? → Python\nGeneral web apps? → JavaScript\u002FTypeScript\n```\n\n## Top 10 Multi-Lang Errors\n\n| Error | Language | Cause | Solution |\n|-------|----------|-------|----------|\n| `WebAssembly.instantiate() failed` | Rust | Invalid WASM | Check wasm-pack build output |\n| `Module parse failed: Unexpected token` | Rust | ESM\u002FCJS mismatch | Use `--target bundler` |\n| `Cannot find module` | Python | Missing dep | Add to pyproject.toml |\n| `Out of memory` | All | Large WASM | Enable streaming instantiation |\n| `Exceeded CPU time limit` | All | Long computation | Chunk processing |\n| `wasm-bindgen version mismatch` | Rust | Dep conflict | Align versions in Cargo.toml |\n| `RuntimeError: unreachable` | Rust | Panic in WASM | Add proper error handling |\n| `TypeError: not a function` | Rust | Missing export | Add `#[wasm_bindgen]` attribute |\n| `Python worker startup timeout` | Python | Slow init | Minimize imports |\n| `SharedArrayBuffer not supported` | All | Security | Add COOP\u002FCOEP headers |\n\n## Rust Quick Start\n\n```bash\n# Install tools\ncargo install wasm-pack\n\n# Create project\ncargo new --lib my-worker\ncd my-worker\n\n# Add to Cargo.toml\ncat >> Cargo.toml \u003C\u003C 'EOF'\n[lib]\ncrate-type = [\"cdylib\"]\n\n[dependencies]\nwasm-bindgen = \"0.2\"\nworker = \"0.3\"\nconsole_error_panic_hook = \"0.1\"\n\n[profile.release]\nopt-level = \"s\"\nlto = true\nEOF\n```\n\n```rust\n\u002F\u002F src\u002Flib.rs\nuse worker::*;\n\n#[event(fetch)]\nasync fn fetch(req: Request, env: Env, _ctx: Context) -> Result\u003CResponse> {\n    console_error_panic_hook::set_once();\n\n    Router::new()\n        .get(\"\u002F\", |_, _| Response::ok(\"Hello from Rust!\"))\n        .get(\"\u002Fcompute\", |_, _| {\n            \u002F\u002F CPU-intensive computation\n            let result = heavy_computation();\n            Response::ok(format!(\"Result: {}\", result))\n        })\n        .run(req, env)\n        .await\n}\n\nfn heavy_computation() -> u64 {\n    (1..1_000_000).filter(|n| is_prime(*n)).count() as u64\n}\n\nfn is_prime(n: u64) -> bool {\n    if n \u003C 2 { return false; }\n    (2..=(n as f64).sqrt() as u64).all(|i| n % i != 0)\n}\n```\n\n## Python Quick Start (Workers for Platforms)\n\n```toml\n# pyproject.toml\n[project]\nname = \"my-worker\"\nversion = \"0.1.0\"\nrequires-python = \">=3.12\"\ndependencies = []\n\n[build-system]\nrequires = [\"hatchling\"]\nbuild-backend = \"hatchling.build\"\n```\n\n```python\n# src\u002Fentry.py\nfrom js import Response, Headers\n\nasync def on_fetch(request, env):\n    url = request.url\n\n    if \"\u002Fcompute\" in url:\n        result = heavy_computation()\n        return Response.new(f\"Result: {result}\")\n\n    return Response.new(\"Hello from Python!\")\n\ndef heavy_computation():\n    \"\"\"CPU-intensive computation\"\"\"\n    return sum(1 for n in range(2, 100000) if is_prime(n))\n\ndef is_prime(n):\n    if n \u003C 2:\n        return False\n    return all(n % i != 0 for i in range(2, int(n**0.5) + 1))\n```\n\n## WASM Module Integration\n\n```typescript\n\u002F\u002F Load and use WASM module in TypeScript Worker\nimport wasmModule from '.\u002Fpkg\u002Fmy_lib_bg.wasm';\nimport { init, process_data } from '.\u002Fpkg\u002Fmy_lib';\n\nlet wasmInstance: WebAssembly.Instance;\n\nexport default {\n  async fetch(request: Request, env: Env): Promise\u003CResponse> {\n    \u002F\u002F Initialize WASM once\n    if (!wasmInstance) {\n      wasmInstance = await WebAssembly.instantiate(wasmModule);\n      init();\n    }\n\n    \u002F\u002F Use WASM function\n    const result = process_data(inputData);\n\n    return Response.json({ result });\n  },\n};\n```\n\n## When to Load References\n\n| Reference | Load When |\n|-----------|-----------|\n| `references\u002Frust-workers.md` | Building Workers with Rust\u002FWASM |\n| `references\u002Fpython-workers.md` | Using Python on Workers for Platforms |\n| `references\u002Fwasm-integration.md` | Integrating WASM modules in any Worker |\n\n## Performance Tips\n\n1. **WASM Initialization**: Cache instance, use streaming\n2. **Memory**: Use typed arrays for data transfer\n3. **Bundle Size**: Enable LTO, strip debug info\n4. **Cold Starts**: Keep WASM modules small\n5. **Data Transfer**: Minimize JS\u002FWASM boundary crossings\n\n## See Also\n\n- `workers-performance` - General optimization techniques\n- `workers-testing` - Testing multi-language Workers\n- `cloudflare-worker-base` - Basic Workers setup\n",{"name":5,"license":15,"metadata":44,"description":7},{"version":45},"1.0.0","main","def8531e65114c0fca8fb8551c1871ee0eed705c","skills\u002Fsecondsky\u002Fclaude-skills\u002Fcloudflare-workers-multi-lang",24,"https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub","https:\u002F\u002Fskillshub.wtf","https:\u002F\u002Fgithub.com\u002FComeOnOliver","AI & Blockchain Engineer\r\n","2026-06-24 22:07:19",{"source":8,"skillName":5,"commands":56,"prompt":66,"zipAvailable":67},[57,60,63],{"tool":58,"command":59},"npx","npx skills add ComeOnOliver\u002Fskillshub --skill cloudflare-workers-multi-lang",{"tool":61,"command":62},"bunx","bunx skills add ComeOnOliver\u002Fskillshub --skill cloudflare-workers-multi-lang",{"tool":64,"command":65},"pnpm","pnpm dlx skills add ComeOnOliver\u002Fskillshub --skill cloudflare-workers-multi-lang","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fsecondsky\u002Fclaude-skills\u002Fcloudflare-workers-multi-lang\u002FSKILL.md",true,[69,75,79,83,89,93,97,101,105,108],{"path":70,"resourceType":71,"resourceTypeDesc":72,"sizeBytes":73,"sourceHtmlUrl":74},"references\u002Fpython-workers.md","REFERENCE","参考文档",12212,"https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fsecondsky\u002Fclaude-skills\u002Fcloudflare-workers-multi-lang\u002Freferences\u002Fpython-workers.md",{"path":76,"resourceType":71,"resourceTypeDesc":72,"sizeBytes":77,"sourceHtmlUrl":78},"references\u002Frust-workers.md",10826,"https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fsecondsky\u002Fclaude-skills\u002Fcloudflare-workers-multi-lang\u002Freferences\u002Frust-workers.md",{"path":80,"resourceType":71,"resourceTypeDesc":72,"sizeBytes":81,"sourceHtmlUrl":82},"references\u002Fwasm-integration.md",13042,"https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fsecondsky\u002Fclaude-skills\u002Fcloudflare-workers-multi-lang\u002Freferences\u002Fwasm-integration.md",{"path":84,"resourceType":85,"resourceTypeDesc":86,"sizeBytes":87,"sourceHtmlUrl":88},"scripts\u002Fbuild-rust.sh","SCRIPT","脚本",4625,"https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fsecondsky\u002Fclaude-skills\u002Fcloudflare-workers-multi-lang\u002Fscripts\u002Fbuild-rust.sh",{"path":90,"resourceType":85,"resourceTypeDesc":86,"sizeBytes":91,"sourceHtmlUrl":92},"scripts\u002Fbuild-wasm.sh",9663,"https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fsecondsky\u002Fclaude-skills\u002Fcloudflare-workers-multi-lang\u002Fscripts\u002Fbuild-wasm.sh",{"path":94,"resourceType":85,"resourceTypeDesc":86,"sizeBytes":95,"sourceHtmlUrl":96},"scripts\u002Ftest-wasm.sh",0,"https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fsecondsky\u002Fclaude-skills\u002Fcloudflare-workers-multi-lang\u002Fscripts\u002Ftest-wasm.sh",{"path":98,"resourceType":85,"resourceTypeDesc":86,"sizeBytes":99,"sourceHtmlUrl":100},"templates\u002Fpython-worker.py",16111,"https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fsecondsky\u002Fclaude-skills\u002Fcloudflare-workers-multi-lang\u002Ftemplates\u002Fpython-worker.py",{"path":102,"resourceType":85,"resourceTypeDesc":86,"sizeBytes":103,"sourceHtmlUrl":104},"templates\u002Frust-worker.rs",16136,"https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fsecondsky\u002Fclaude-skills\u002Fcloudflare-workers-multi-lang\u002Ftemplates\u002Frust-worker.rs",{"path":106,"resourceType":85,"resourceTypeDesc":86,"sizeBytes":95,"sourceHtmlUrl":107},"templates\u002Fwasm-integration.ts","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fsecondsky\u002Fclaude-skills\u002Fcloudflare-workers-multi-lang\u002Ftemplates\u002Fwasm-integration.ts",{"path":109,"resourceType":85,"resourceTypeDesc":86,"sizeBytes":110,"sourceHtmlUrl":111},"templates\u002Fwasm-worker.ts",15715,"https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fsecondsky\u002Fclaude-skills\u002Fcloudflare-workers-multi-lang\u002Ftemplates\u002Fwasm-worker.ts",[113,127,137,146,152,159],{"skillNo":114,"name":115,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":116,"categories":117,"keywords":123,"publishedAt":39},"01M6FKJN13GMG4KY57J3QD8GY5","model-hierarchy-skill","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzscole\u002Fmodel-hierarchy-skill\u002Fmodel-hierarchy-skill\u002FSKILL.md",[118],{"categoryNo":119,"categoryName":120,"taxonomyType":121,"taxonomyTypeDesc":122},"01JBSEEDCAT000000000000023","Skill与智能体开发","SCENARIO","使用场景",[124,125,126],"model","model hierarchy","model hierarchy skill",{"skillNo":128,"name":129,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":130,"categories":131,"keywords":133,"publishedAt":39},"01M6FKJJJ6GCAMR4PPPRD12M5X","zoom-mcp","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fzoom-mcp\u002FSKILL.md",[132],{"categoryNo":119,"categoryName":120,"taxonomyType":121,"taxonomyTypeDesc":122},[134,135,136],"MCP","zoom","zoom mcp",{"skillNo":138,"name":139,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":140,"categories":141,"keywords":142,"publishedAt":39},"01M6FKJE3KYT3KPEZMEEHYKA6K","zoom-apps-sdk","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fzoom-apps-sdk\u002FSKILL.md",[],[143,144,145,135],"sdk","zoom apps sdk","apps",{"skillNo":147,"name":148,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":149,"categories":150,"keywords":151,"publishedAt":39},"01M6FKJ9EDH9Q5VWDF8HAJRSP0","windows","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fwindows\u002FSKILL.md",[],[148],{"skillNo":153,"name":154,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":155,"categories":156,"keywords":158,"publishedAt":39},"01M6FKJ666BEEFC3AE9GJ72Q93","whiteboard","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fwhiteboard\u002FSKILL.md",[157],{"categoryNo":119,"categoryName":120,"taxonomyType":121,"taxonomyTypeDesc":122},[154],{"skillNo":160,"name":161,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":162,"categories":163,"keywords":164,"publishedAt":39},"01M6FKJ21WFCDGTJQ2Q91T9DVW","websockets","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fwebsockets\u002FSKILL.md",[],[161]]