[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"article-webassembly-turns-native-code-into-web-modules-en":3,"article-related-webassembly-turns-native-code-into-web-modules-en":37,"series-tools-7255cd69-7325-4bbe-b9de-e90f9e24d145":91},{"id":4,"title":5,"content":6,"summary":7,"source":8,"source_url":9,"author":10,"image_url":11,"keywords":12,"language":18,"translated_content":10,"views":19,"is_premium":20,"created_at":21,"updated_at":21,"cover_image":11,"published_at":22,"rewrite_status":23,"rewrite_error":10,"rewritten_from_id":24,"slug":25,"category":26,"related_article_id":27,"status":28,"google_indexed_at":29,"x_posted_at":10,"tweet_text":10,"title_rewritten_at":10,"title_original":10,"key_takeaways":30,"topic_cluster_id":34,"embedding":35,"is_canonical_seed":36},"7255cd69-7325-4bbe-b9de-e90f9e24d145","WebAssembly turns native code into web modules","\u003Cp data-speakable=\"summary\">I turn WebAssembly into a practical playbook you can copy.\u003C\u002Fp>\u003Cp>I've been using WebAssembly the same way a lot of teams do: as this shiny answer to “make it faster.” And honestly, that framing kept tripping me up. I’d see people reach for Wasm when JavaScript felt slow, or when someone wanted to ship a \u003Ca href=\"\u002Ftag\u002Frust\">Rust\u003C\u002Fa> binary into the browser, or when a backend team wanted plugins without letting strangers loose in the process. Fine. But the details were always messy. Build tooling was half a scavenger hunt, browser integration had sharp edges, and every “just compile it to Wasm” conversation turned into three follow-up conversations about memory, host APIs, and debugging.\u003C\u002Fp>\u003Cp>What finally made it click for me was stopping the sales pitch and reading the thing like an engineer. The Wikipedia article on \u003Ca href=\"https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FWebAssembly\">WebAssembly\u003C\u002Fa> is dry in the way only a standards summary can be, but it quietly spells out the actual shape of the technology: a portable binary format, a text format, a host interface, browser support, non-browser runtimes, compiler paths, and a long list of limits that people keep pretending aren’t there. Once I treated Wasm like an execution target with tradeoffs instead of a magic performance button, the whole stack got easier to reason about.\u003C\u002Fp>\u003Cp>This piece is me decomposing that article into something I’d actually hand to a teammate before they started a Wasm project.\u003C\u002Fp>\u003Ch2>WebAssembly is not “JavaScript, but faster”\u003C\u002Fh2>\u003Cblockquote>“WebAssembly (Wasm) defines a portable binary code format and a corresponding text format for executable programs and software interfaces for facilitating communication between such programs and their host environment.”\u003C\u002Fblockquote>\u003Cp>What this actually means is that Wasm is a module format with a contract. It’s not a framework. It’s not a UI layer. It’s not a replacement for the browser. It’s a way to ship compiled code in a format that a host can load, instantiate, and talk to. The “host environment” part matters more than people want to admit, because Wasm does not get to touch everything directly. It gets what the host exposes.\u003C\u002Fp>\n\u003Cfigure class=\"my-6\">\u003Cimg src=\"https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1779167068122-6fmb.png\" alt=\"WebAssembly turns native code into web modules\" class=\"rounded-xl w-full\" loading=\"lazy\" \u002F>\u003C\u002Ffigure>\n\u003Cp>I ran into this the first time I tried to treat a Wasm module like a tiny app. It compiled fine, it loaded fine, and then it immediately got awkward the moment I needed DOM access. Of course it did. The browser is still the browser. Wasm sits inside it like a very disciplined guest who needs permission for almost everything.\u003C\u002Fp>\u003Cp>The article also points out the two formats: \u003Ccode>.wasm\u003C\u002Fcode> for binary and \u003Ccode>.wat\u003C\u002Fcode> for text. That distinction is easy to ignore until you’re debugging or inspecting a module. Binary is what ships. Text is what humans can read. If you’ve ever stared at minified JS and wanted to throw your laptop out a window, the text format is your sanity check.\u003C\u002Fp>\u003Cp>How to apply it: start every Wasm decision by naming the boundary. Ask:\u003C\u002Fp>\u003Cul>\u003Cli>What code is being compiled into Wasm?\u003C\u002Fli>\u003Cli>What host is loading it?\u003C\u002Fli>\u003Cli>What data crosses the boundary?\u003C\u002Fli>\u003Cli>What APIs stay outside the module?\u003C\u002Fli>\u003C\u002Ful>\u003Cp>If you can’t answer those four questions, you’re not designing a Wasm system yet. You’re just collecting jargon.\u003C\u002Fp>\u003Ch2>The browser story is real, but it’s not the whole story\u003C\u002Fh2>\u003Cp>The article says the main goal of WebAssembly is to support high-performance applications on web pages, but it also says it’s designed for non-web environments. That second clause is where a lot of the useful work lives now. The browser was the first proving ground, not the final destination.\u003C\u002Fp>\u003Cp>WebAssembly’s history matters here. It was announced in 2015, first released in March 2017, and became a W3C recommendation in December 2019. It also received the ACM SIGPLAN Programming Languages Software Award in 2021. That’s the standardization arc: prototype, release, recommendation, recognition. Not magic, just a lot of people grinding on a spec until it became boring enough to trust.\u003C\u002Fp>\u003Cp>The browser support story is strong too. The article notes that by March 2024, 99% of tracked web browsers supported WebAssembly 1.0. That’s the kind of number that changes the conversation from “can we use this?” to “where does it actually fit?”\u003C\u002Fp>\u003Cp>I’ve seen teams get stuck because they still think of Wasm as a browser-only stunt. That mindset misses a huge chunk of the ecosystem. If you’re building plugins, sandboxed execution, edge-side compute, or language runtimes inside a host process, Wasm is often more interesting outside the browser than inside it.\u003C\u002Fp>\u003Cp>How to apply it: choose your runtime first, not last. The article names browser and non-browser runtimes like \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fbytecodealliance\u002Fwasmtime\">Wasmtime\u003C\u002Fa>, \u003Ca href=\"https:\u002F\u002Fwasmer.io\u002F\">Wasmer\u003C\u002Fa>, \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FWasmEdge\u002FWasmEdge\">WasmEdge\u003C\u002Fa>, \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Ftetratelabs\u002Fwazero\">wazero\u003C\u002Fa>, and \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fbytecodealliance\u002Fwasm-micro-runtime\">WAMR\u003C\u002Fa>. Each one implies a different deployment and integration story. Don’t pick the compiler before you know where the module will run.\u003C\u002Fp>\u003Ch2>The real value is portability with guardrails\u003C\u002Fh2>\u003Cp>One line from the article is easy to skim past but does a lot of work: WebAssembly is intended to support any language on any operating system, and many popular languages already have at least some support. That’s the promise. Not “every language works perfectly everywhere,” because that would be nonsense. More like: if your language can compile to Wasm, you can move code across environments without rewriting the entire thing in another runtime model.\u003C\u002Fp>\n\u003Cfigure class=\"my-6\">\u003Cimg src=\"https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1779167065872-9h4l.png\" alt=\"WebAssembly turns native code into web modules\" class=\"rounded-xl w-full\" loading=\"lazy\" \u002F>\u003C\u002Ffigure>\n\u003Cp>That portability is why Wasm keeps showing up in places that have nothing to do with browsers. It gives you a reasonably small execution target with a defined interface. That’s useful when you want to isolate code, move compute closer to users, or standardize plugin execution across hosts.\u003C\u002Fp>\u003Cp>But the guardrails are the point. Wasm is portable because it is constrained. It’s designed around a structured, stack-based model. You don’t get arbitrary machine access. You don’t get to pretend the host doesn’t exist. You get a predictable runtime shape, and in exchange you give up some freedom.\u003C\u002Fp>\u003Cp>I like that trade, but only when the team understands it. I’ve watched people get excited about “write once, run anywhere” and then act betrayed when the runtime won’t let them directly poke the DOM or allocate giant chunks of memory on mobile browsers. That’s not a bug in the idea. That’s the price of the model.\u003C\u002Fp>\u003Cp>How to apply it: use Wasm when you need one or more of these:\u003C\u002Fp>\u003Cul>\u003Cli>portable execution across hosts\u003C\u002Fli>\u003Cli>language interoperability without rewriting core logic\u003C\u002Fli>\u003Cli>sandboxed or constrained execution\u003C\u002Fli>\u003Cli>plugin-style extensibility\u003C\u002Fli>\u003Cli>performance for compute-heavy code paths\u003C\u002Fli>\u003C\u002Ful>\u003Cp>If you mostly need UI behavior, routing, or direct browser \u003Ca href=\"\u002Ftag\u002Fapi\">API\u003C\u002Fa> access, plain JavaScript or \u003Ca href=\"\u002Ftag\u002Ftypescript\">TypeScript\u003C\u002Fa> is still the cleaner tool.\u003C\u002Fp>\u003Ch2>Compiler support is the boring part that decides everything\u003C\u002Fh2>\u003Cp>The article is blunt about how code gets into Wasm: ahead-of-time or just-in-time compilation, sometimes with an interpreter, and usually through a compiler toolchain. This is where the fantasy dies and the engineering starts. You do not “write Wasm.” You target it.\u003C\u002Fp>\u003Cp>The article names a few important paths. \u003Ca href=\"https:\u002F\u002Femscripten.org\u002F\">Emscripten\u003C\u002Fa> compiles C and C++ using Clang and Binaryen. Standalone \u003Ca href=\"https:\u002F\u002Fclang.llvm.org\u002F\">Clang\u003C\u002Fa> can compile directly to Wasm. LLVM-based workflows support languages like Rust and AssemblyScript. That means your Wasm experience is heavily shaped by the toolchain you already live in.\u003C\u002Fp>\u003Cp>That’s also why Wasm adoption feels uneven. The runtime may be standardized, but the build path is not equally pleasant for every language. Some ecosystems have mature support. Some have “it works, but don’t look too closely.” The article even notes that around 40 programming languages supported Wasm as a compiling target as of 2021. That’s broad support, but “support” can mean anything from polished to barely usable.\u003C\u002Fp>\u003Cp>I’ve had the best results when I treated the toolchain as part of the architecture, not an implementation detail. If the build step is ugly, slow, or impossible to debug, your Wasm project will rot fast. People underestimate this all the time. They obsess over runtime speed and ignore the fact that the build pipeline runs every day.\u003C\u002Fp>\u003Cp>How to apply it: before you commit to Wasm, prototype the full pipeline:\u003C\u002Fp>\u003Cul>\u003Cli>source language to Wasm build\u003C\u002Fli>\u003Cli>module size after optimization\u003C\u002Fli>\u003Cli>instantiation time in the target host\u003C\u002Fli>\u003Cli>debugging workflow\u003C\u002Fli>\u003Cli>how you pass data in and out\u003C\u002Fli>\u003C\u002Ful>\u003Cp>If any one of those is painful, the project may still be worth doing, but now you know where the pain lives instead of discovering it in production.\u003C\u002Fp>\u003Ch2>Wasm shines when you need a host-controlled sandbox\u003C\u002Fh2>\u003Cp>The article’s implementation section makes something clear that people often learn too late: a WebAssembly runtime is a low-level virtual stack machine that can be embedded into any host application. That means the host owns the rules. The module runs inside the rules. If you want a plugin system, a secure extension point, or a controlled execution environment, that’s a feature, not a limitation.\u003C\u002Fp>\u003Cp>This is why Wasm shows up in application servers and proxy extension systems like \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fproxy-wasm\u002Fspec\">Proxy-Wasm\u003C\u002Fa>. The host can expose just enough capability for the module to do useful work without giving it the keys to the kingdom. That’s a much better story than loading arbitrary native plugins and hoping everyone behaves.\u003C\u002Fp>\u003Cp>I’ve seen this pattern work really well for teams that need customer-defined logic. Instead of shipping a scripting runtime with a huge attack surface, they compile user logic to Wasm and run it in a constrained environment. It’s not free. You still need policy, metering, and a sane ABI. But the shape is way better than “here’s a shared library, good luck.”\u003C\u002Fp>\u003Cp>How to apply it: use Wasm as a plugin boundary when you want:\u003C\u002Fp>\u003Cul>\u003Cli>predictable host control\u003C\u002Fli>\u003Cli>cross-language plugin authoring\u003C\u002Fli>\u003Cli>smaller trust surface than native plugins\u003C\u002Fli>\u003Cli>portable execution across environments\u003C\u002Fli>\u003C\u002Ful>\u003Cp>Don’t use it if your plugin needs deep OS integration, direct filesystem tricks, or unrestricted access to host internals. You’ll spend more time fighting the sandbox than benefiting from it.\u003C\u002Fp>\u003Ch2>The limits are the part teams keep pretending away\u003C\u002Fh2>\u003Cp>The limits section is the most useful part of the article because it refuses to romanticize the technology. WebAssembly in browsers cannot directly manipulate the DOM. It has to go through JavaScript. That single fact kills a lot of bad ideas quickly.\u003C\u002Fp>\u003Cp>The article also notes that browser support is not the same thing as feature support. For example, multithreading was still a draft in the article’s timeline, and more advanced extensions have uneven support. There are also memory constraints that make large allocations unreliable on mobile browsers, with the article citing around 300MB as a rough danger zone for Chrome on Android and Safari on iOS. That’s not a small footnote. That’s a deployment constraint.\u003C\u002Fp>\u003Cp>Then there’s CSP. The article says major browsers allow WebAssembly if Content-Security-Policy is not specified, or if \u003Ccode>unsafe-eval\u003C\u002Fcode> is used, but behave differently otherwise. Chrome requiring \u003Ccode>unsafe-eval\u003C\u002Fcode> is exactly the kind of detail that turns a clean demo into a production headache. Ask me how I know. I’ve watched a team assume their module would load anywhere, only to hit policy issues that had nothing to do with Wasm’s core execution model.\u003C\u002Fp>\u003Cp>How to apply it: write down the constraints before you write the code. Specifically:\u003C\u002Fp>\u003Cul>\u003Cli>What browser policies will be in place?\u003C\u002Fli>\u003Cli>How much memory does the module need?\u003C\u002Fli>\u003Cli>Does the module need threads?\u003C\u002Fli>\u003Cli>Does it need browser APIs or JS glue?\u003C\u002Fli>\u003Cli>What happens if feature support varies across clients?\u003C\u002Fli>\u003C\u002Ful>\u003Cp>If your answer is “we’ll figure it out later,” then you’re already planning to debug this in production.\u003C\u002Fp>\u003Ch2>WASI and newer specs are where Wasm gets less browser-shaped\u003C\u002Fh2>\u003Cp>The article mentions WASI, which is the WebAssembly System Interface. That’s the bridge between Wasm modules and system-style capabilities outside the browser. This is one of the most important directions in the whole ecosystem because it moves Wasm from “browser binary format” toward “portable application runtime.”\u003C\u002Fp>\u003Cp>It also notes later spec work: WebAssembly 2.0 added SIMD-related instructions, multiple return values, mass memory init\u002Fcopy instructions, and reference types. WebAssembly 3.0 added a 64-bit address space, multiple address spaces, exception handling, and garbage-collected struct and array types. That’s the spec maturing in public, one painful feature at a time.\u003C\u002Fp>\u003Cp>That evolution matters if you’re targeting higher-level languages. The article says GC support helps more efficient compiling for high-level languages, even though WasmGC from WebAssembly 3.0 still lacks what the .NET runtime needs. That’s the kind of sentence that should keep you honest. Even when the spec moves forward, your language runtime might still need more.\u003C\u002Fp>\u003Cp>I like this part because it explains why Wasm is not frozen in its early browser-era shape. The ecosystem is trying to support more language semantics without blowing up the portability model. That’s hard. It also means you should check the version and feature set you actually need instead of assuming “Wasm” is one fixed thing.\u003C\u002Fp>\u003Cp>How to apply it: if you’re building beyond the MVP, verify which extensions your host and compiler support:\u003C\u002Fp>\u003Cul>\u003Cli>WASI for system-style access\u003C\u002Fli>\u003Cli>SIMD for vectorized workloads\u003C\u002Fli>\u003Cli>threads if you need concurrency\u003C\u002Fli>\u003Cli>reference types for richer host interop\u003C\u002Fli>\u003Cli>GC features if your language runtime depends on them\u003C\u002Fli>\u003C\u002Ful>\u003Cp>That checklist saves you from discovering, six weeks in, that the spec has the feature but your runtime doesn’t.\u003C\u002Fp>\u003Ch2>The template you can copy\u003C\u002Fh2>\u003Cpre>\u003Ccode># WebAssembly adoption template\n\n## 1) What I am trying to run\n- Language:\n- Source repository:\n- Module responsibility:\n- Why this belongs in Wasm instead of JS\u002Fnative\u002Fplugin runtime:\n\n## 2) Where it will run\n- Browser:\n- Non-browser runtime:\n- Host application:\n- Target operating systems:\n- Feature constraints (CSP, threads, memory, WASI, GC):\n\n## 3) Boundary contract\n### Inputs\n- Data format:\n- Serialization method:\n- Max payload size:\n\n### Outputs\n- Return values:\n- Events\u002Fcallbacks:\n- Error format:\n\n### Host APIs exposed\n- Allowed capabilities:\n- Forbidden capabilities:\n- JS bridge needed? yes\u002Fno\n\n## 4) Toolchain\n- Compiler:\n- Optimizer:\n- Runtime:\n- Debugger:\n- Build command:\n- Release build command:\n\n## 5) Minimum proof of life\n- Can the module instantiate?\n- Can it exchange one value with the host?\n- Can I trace a failure end-to-end?\n- Can I deploy it in the real target environment?\n\n## 6) Risk checklist\n- DOM access required? If yes, keep logic in JS.\n- Memory > 300MB on mobile? Reconsider browser deployment.\n- CSP blocks Wasm? Fix policy before shipping.\n- Need threads? Verify host support.\n- Need WASI? Confirm runtime compatibility.\n- Need GC \u002F reference types \u002F SIMD? Check exact version support.\n\n## 7) Decision rule\nUse WebAssembly only if:\n- the code must be portable across hosts,\n- the host should control the sandbox,\n- the compiler\u002Fruntime path is acceptable,\n- and the limits are smaller than the problem it solves.\n\nIf not, stay with native code, JavaScript, or a simpler plugin interface.\u003C\u002Fcode>\u003C\u002Fpre>\u003Cp>This is the version I wish more teams wrote down before they started. It forces the question Wasm is actually good at answering: not “can we compile this?” but “should this live behind a Wasm boundary at all?”\u003C\u002Fp>\u003Cp>Source attribution: the breakdown above is derived from the \u003Ca href=\"https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FWebAssembly\">WebAssembly Wikipedia article\u003C\u002Fa>, with extra practical framing from me. I’ve kept the original facts anchored to that page and added my own implementation advice where the article stops short.\u003C\u002Fp>","I break down WebAssembly into a practical playbook, then give you a copy-ready template for targeting browser and non-browser runtimes.","en.wikipedia.org","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FWebAssembly",null,"https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1779167068122-6fmb.png",[13,14,15,16,17],"WebAssembly","Wasm","WASI","browser runtimes","compiler toolchain","en",0,false,"2026-05-19T05:04:03.675673+00:00","2026-05-19T05:04:03.532+00:00","done","27b55163-0aa0-4c86-90a1-e95a72891c8c","webassembly-turns-native-code-into-web-modules-en","tools","31b9c458-eab8-44fa-b154-502ea8343f10","published","2026-05-19T09:00:34.046+00:00",[31,32,33],"Wasm is a portable module format with a host boundary, not a JS replacement.","The biggest wins show up in sandboxed plugins, cross-language runtimes, and non-browser hosts.","The limits matter: DOM access, CSP, memory ceilings, and feature support can make or break a project.","8360fa49-34e5-46c0-bde0-60d98cfa732c","[-0.008259177,0.005564052,0.02472881,-0.09113314,0.004214827,-0.011595836,0.020664243,-0.003864467,0.03157751,0.00735366,-0.0043072733,0.0095310295,-0.011043199,0.0013278371,0.13674764,-0.010537892,-0.0045052,0.018639775,0.0060292934,0.009656759,0.025634628,-0.005588835,0.007294275,-0.01652075,0.012818983,-0.006370105,0.037328206,0.0012698383,0.06914289,-0.0025756103,0.010279763,0.0068034753,0.017676603,0.006378181,0.024611317,0.008733523,-0.012801059,-0.002560124,0.0024692048,0.007390609,0.008515971,-0.009265308,0.04215559,-0.0070170593,-0.011917715,0.00062612037,-0.02920404,-0.011637899,-0.009621958,0.051950086,-0.0009389043,-0.012056005,0.014195921,-0.15734063,-0.0021877126,-0.000540788,-0.008812902,-0.010072545,0.0063368636,0.011659044,-0.0055972906,0.038259488,-0.027045894,-0.008809974,-0.026257202,0.0034325542,0.0038330292,-0.011262393,0.0011827702,0.0024058293,0.0038263698,-0.0040434706,-0.024815176,-0.008768612,0.0048965076,-0.048076134,0.015227567,0.005620442,-0.006556834,0.00911992,-0.002686113,-0.009683977,0.00086939154,-0.016054774,0.015012179,0.014012216,0.00027385156,0.009657912,0.001559671,-0.0067318217,0.036519684,0.045730915,0.019202553,-0.0030141333,0.002435335,-0.004837203,0.0029375833,-0.03621246,-0.011407155,-5.6130186e-05,-0.0040768366,0.014608624,-0.0009983339,-0.0043913373,0.007867619,0.020384613,-0.003229658,-0.008288384,0.0009349536,-0.006091923,0.009639973,-0.012167106,-0.003208775,0.037573878,0.0019963959,-0.11690807,-0.0074022515,0.008215788,0.004209063,0.015313567,-0.022066116,0.007071824,-0.0006590384,0.030132052,0.022493726,0.008310539,-0.0016405467,0.0072576916,0.019464206,-0.017299423,-0.028259393,-0.0030432034,0.009508513,0.0502269,-0.016093692,-0.009193625,-0.012814068,0.002489273,-0.0012228861,-0.032531776,0.012946606,0.042922545,-0.031414296,0.010996713,-0.016216516,-0.0056097223,-0.025039017,0.020620653,-0.013509781,-0.003891582,0.007490974,-0.030737203,0.00591679,-0.00019933304,0.008406119,-0.025796434,-0.0017049882,0.00016631561,0.020184895,-0.012599565,-0.016355842,0.0125445565,-0.005807205,0.026246598,-0.008167815,0.03027961,-0.00572422,0.019741682,0.010747898,0.01828813,0.020699248,0.01846846,-0.011378816,0.016959231,0.008150244,-0.03617011,0.0038265474,0.008432992,0.0029737276,-0.038208142,-0.008778916,-0.0026263169,0.029723423,0.018885113,-0.0077613075,0.018357763,-0.0074443505,0.015141171,0.0041770223,0.0001963848,0.0024124484,-0.0244118,0.008534649,-0.0013199399,-0.0023106544,-0.023760062,-0.02953318,-0.007684494,-0.016781379,0.023032589,-0.006104148,0.0008465191,-0.0017184363,-0.02130799,-0.011826556,0.0012918953,-0.001065598,-0.028313413,-0.0027294012,0.0035219565,-0.007897995,-0.0014005841,0.03216626,0.022454277,0.0053064944,-0.015465972,0.0118244765,-0.014831593,0.0016476501,-0.0072286506,0.017322335,-0.031223053,0.03375524,0.0139059,0.0017663471,-0.02234833,-0.0017095349,-0.025318839,-9.768508e-05,0.017495526,0.016149493,0.0085286265,0.0060597127,-0.016429957,0.011051561,0.027685294,0.024125174,-0.01555752,0.0015768651,-0.008897644,-0.0151268635,0.0025252174,0.003962404,0.007725207,0.017471379,0.023856793,0.012992022,-0.030173177,-0.017401261,-0.006739307,-0.021617344,-0.0015268064,-0.00068235607,0.001395897,0.002157614,-0.0077661905,0.0028232166,-0.0070472537,-0.013970668,-0.02944085,0.022485396,-0.01906434,-0.006258288,0.0012950264,-0.027291754,-0.0008140827,-0.016760638,0.03969959,-0.0060653575,0.0009965332,-0.011341654,0.0493405,0.0014836541,-0.0048736557,-0.0142520815,0.013444757,-0.05643019,0.026546642,0.034045193,0.0013676904,0.021096641,-0.016921207,0.00755125,0.009768368,0.0013210233,-0.015377909,-0.013033446,-0.0017209337,-0.007819271,0.016560672,0.010090066,6.8485286e-05,-0.008262878,-0.0039847926,0.009529889,-0.028460525,-0.011057205,0.041401118,-0.027011167,-0.011938207,0.0358812,-0.0013502063,0.0017569438,0.025368849,-0.0071747364,-0.0009340156,0.02883476,0.019515837,-0.025611801,0.021798203,0.016995277,-0.010813181,0.016284604,-0.010820899,-0.029931694,-0.0073503125,0.002710763,-0.0071437787,0.0006568789,0.026917038,-0.014845932,-0.00706727,-0.031962562,0.011302968,-0.018146254,-0.017027745,0.032139212,0.0014746231,0.023191543,-0.04161089,0.0028833451,0.03554458,-0.0025023108,-0.009549097,0.024109278,0.002170275,0.013049646,-0.008010143,-0.007786389,0.005033551,-0.0047368947,-0.025238967,-0.026511582,-0.0025965965,-0.00845864,0.023545701,0.0014399679,-0.030605191,-0.00034299574,-0.03352369,0.008509955,0.0052946177,-0.0007618427,-0.018241944,-0.0051079458,0.009060842,0.0055065565,-0.01123719,0.0037341032,0.0027740002,0.009715689,0.009456149,-0.035400018,-0.0019555273,-0.0052580275,-0.012538268,-0.0110530825,0.014750779,-0.010699388,-0.018767815,-0.0060943943,0.0045568612,0.0073728967,-0.025030257,0.007634688,-0.0014200902,-0.03147073,-0.0073742555,0.013758401,0.012016328,0.0065701106,0.03137118,-0.0076047904,-0.015050957,-0.026352376,0.010847837,0.0237928,-0.011734901,0.0010475429,0.023173172,0.005793025,0.022615036,-0.0079426775,0.039476078,-0.025124239,0.012610566,-0.026427405,0.008703922,0.018791026,-0.020381644,-0.0006416429,0.0016515679,-0.013163846,-0.00014142011,0.005189056,-0.014799972,-0.006783134,0.002002067,0.0036426396,0.042465273,-0.006488606,-0.00535081,0.017445715,0.007559152,-0.009058098,0.014579766,-0.022436488,-0.0076928567,-0.011175033,0.0015826852,-0.00964509,-0.0063824663,-0.012084633,0.0025069087,-0.00057022535,0.0016116564,0.004422179,0.0006361306,0.002376182,0.0008246518,-0.00590559,0.013780713,0.006328759,-0.0386405,-0.014665401,-0.027548373,-0.029859416,-0.011704197,-0.018670432,0.012477397,-0.020602545,-0.0013781664,-0.03492156,0.023946159,0.015579061,0.01830545,0.019891113,-0.020287804,-0.0021218949,0.032106817,0.006835248,0.004354134,-0.0039463565,-0.011464095,0.0018806846,-0.0043138624,-0.019302817,-0.011110572,-0.0071751606,-0.010686258,-0.0047076396,0.0139983995,0.0099229375,-0.020296788,0.018723143,-0.018358123,-0.0070208577,-0.015967803,-0.021791698,0.0020976486,-0.015338541,0.024910534,0.03178679,0.007038766,-0.025787288,0.03513787,-0.022689927,0.01089082,-0.009575359,-0.0054016146,-0.011129588,0.01799051,0.015522939,0.011767456,-0.013832236,0.012461147,-0.019904783,-0.046990406,-0.010625502,-0.019592628,0.026383499,0.02899079,0.003459405,-0.0096086105,-0.030615171,-0.013307484,-0.010212979,0.013917044,-0.0027388805,-0.005431093,-0.021886777,0.0027401566,-0.015550098,-0.0085409535,0.020923398,0.03895576,0.02744211,-0.031269748,-0.0053130346,0.017725164,-0.01193239,-0.01577614,0.0049253157,0.008873525,0.005716422,0.008082981,-0.02061797,0.012358386,-0.020363813,0.025328016,-0.030996693,-0.0028475628,-0.02742194,0.04859407,-0.0015091881,-0.02025733,-0.001598111,-0.015027447,0.016892208,-0.0070305057,-0.010761774,0.008479398,-0.015260106,0.023346681,-0.015705412,0.008065577,0.0070100846,0.00030753584,-0.03350702,0.022289753,-0.020799275,-0.025426997,-0.020899067,0.029464617,-0.02279097,-0.12245748,0.01224045,-0.019038387,0.018306516,0.019868795,-0.008184203,-0.019422378,0.001260419,-0.030538699,0.02230428,0.0028548779,-0.03165617,0.036987126,0.037967283,-0.008601482,0.01792506,0.02174005,0.007844951,0.0093606515,0.0053129606,0.00085737836,0.016414553,0.020121794,-0.009879884,-0.021158354,-0.00364242,-0.005066671,0.017790219,0.009171357,-0.026610814,-0.002535709,-0.009518108,0.007686303,0.011574399,-0.020375574,0.02906694,0.01974463,-0.0050230343,0.0059498306,0.024110798,-0.0013086024,0.0029979404,0.00074523746,0.018500753,-0.00675375,0.0150513975,0.0116531355,0.010895663,-0.0024437557,0.030371394,-0.02285637,0.0077957064,-0.0017586002,-0.020840919,0.024901059,0.033244286,0.004001123,-6.1791296e-05,-0.0063340585,0.024786498,0.01859307,-0.0069385236,-0.0112394355,0.019598134,0.01607737,-0.01770747,-0.0028491025,0.0051221503,0.004750435,0.022388171,-0.0032011794,-0.011518258,0.006611053,0.02909294,-0.016477546,-0.005166158,-0.03686454,0.029337388,0.0023443087,-0.0053513544,-0.0037855888,-0.031040113,-0.064686336,0.0071858745,0.021072635,0.009117031,0.019867877,0.0040155365,0.014072354,-0.0010371364,-0.009479734,0.0074511133,-0.027810093,-0.04517403,-0.0131366635,-0.0099639,-0.015369331,0.016667824,0.021519842,0.01774395,-0.021794265,-0.012291823,-0.004534731,0.020223718,0.026757859,-0.01359345,0.017548554,0.003859737,0.011715319,-0.008527734,-0.0075215376,0.0031568485,0.0031713026,-0.14004675,-0.035656292,0.015111985,0.011644122,-0.01632222,0.013432113,-0.009318205,-0.0017365504,0.0014342956,-0.032584183,-0.0038369966,-0.019993452,-0.028959284,0.008115167,0.028522326,0.12292689,0.008676736,-0.013255613,0.006276178,-0.0067171967,0.007850391,-0.022692544,-0.013408148,0.003312469,0.010597613,-0.00091266655,0.020161074,-0.011887375,0.0053607775,-0.021636998,0.0007849772,0.0015044606,-0.0026246852,-0.0026669295,0.004344045,0.002484619,0.004384409,-0.01984832,0.0035781101,0.005365141,-0.0041452614,0.021870779,0.0011348063,0.015694428,-0.016968232,0.01701659,-0.009539683,-0.025493074,-0.014649901,-0.021924755,-0.016835457,-0.05238135,-0.014532767,-0.01951759,0.007914362,-0.0022194912,-0.017124806,0.0118246935,0.0013777404,0.002640344,-0.0020709562,-0.0029757621,0.040052716,0.00627511,-0.0022257408,-0.013451679,0.045150306,0.009231147,0.0022204395,-0.0051332978,0.0065321107,-0.006205411,-3.8057467e-05,0.013642232,0.0036373204,-0.022732949,0.0010461629,0.009045991,-0.018336106,-0.0056353547,0.0067474283,-0.016212132,-0.017169634,-0.0241697,0.0033301744,-0.007176763,-0.0016996451,0.0040891347,-0.0009386362,-0.012563985,0.022085097,0.050201476,-0.00437867,0.019031998,0.0010302042,0.011201987,-0.007690221,0.03399927,-0.019175777,-0.010149058,-0.0029597455,0.0020304343,0.006926648,-0.0026962243,0.00919944,-0.0076953885,0.02545219,-0.0075084413,0.00079467637,0.018093245]",true,{"tags":38,"relatedLang":50,"relatedPosts":54},[39,41,43,45,48],{"name":17,"slug":40},"compiler-toolchain",{"name":15,"slug":42},"wasi",{"name":13,"slug":44},"webassembly",{"name":46,"slug":47},"WASM","wasm",{"name":16,"slug":49},"browser-runtimes",{"id":27,"slug":51,"title":52,"language":53},"webassembly-turns-native-code-into-web-modules-zh","WebAssembly 讓原生碼變模組","zh",[55,61,67,73,79,85],{"id":56,"slug":57,"title":58,"cover_image":59,"image_url":59,"created_at":60,"category":26},"c68c66d5-fd1a-42c3-be06-29843ec3f7fb","ibm-vibe-coding-guide-turns-prompts-into-code-en","IBM’s vibe coding guide turns prompts into code","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1779183883878-35no.png","2026-05-19T09:44:03.056322+00:00",{"id":62,"slug":63,"title":64,"cover_image":65,"image_url":65,"created_at":66,"category":26},"cc15b6b9-1471-4c74-bbe2-497aa79b684d","anthropic-buys-stainless-sdk-tool-rivals-en","Anthropic buys Stainless, the SDK tool behind rivals","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1779180246333-crpy.png","2026-05-19T08:43:40.5854+00:00",{"id":68,"slug":69,"title":70,"cover_image":71,"image_url":71,"created_at":72,"category":26},"b2087857-a6d4-4119-8c15-f126e692c909","wembanyama-stat-page-turns-into-recap-en","Wembanyama’s stat page turns into a recap","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1779170695005-cbjt.png","2026-05-19T06:04:24.276122+00:00",{"id":74,"slug":75,"title":76,"cover_image":77,"image_url":77,"created_at":78,"category":26},"8c917808-bf7a-4d45-84a9-2e3d71a65e2b","webassembly-browser-c-to-wasm-tutorial-en","WebAssembly in the Browser: a C-to-WASM tutorial","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1779168228669-ysdt.png","2026-05-19T05:23:25.815492+00:00",{"id":80,"slug":81,"title":82,"cover_image":83,"image_url":83,"created_at":84,"category":26},"4591eda4-bde7-44ff-8707-d11c98c2619a","zhihu-soft-copywriting-four-tips-en","知乎这篇软文教你写出能卖货的标题","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1779146043429-ig5n.png","2026-05-18T23:13:43.175468+00:00",{"id":86,"slug":87,"title":88,"cover_image":89,"image_url":89,"created_at":90,"category":26},"dcd54423-9c56-4e58-9111-fc8ae01e657e","github-copilot-app-desktop-agent-preview-en","GitHub Copilot app enters desktop agent preview","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1779141828856-a9v1.png","2026-05-18T22:03:23.464591+00:00",[92,97,102,107,112,117,122,127,132,137],{"id":93,"slug":94,"title":95,"created_at":96},"8008f1a9-7a00-4bad-88c9-3eedc9c6b4b1","surepath-ai-mcp-policy-controls-en","SurePath AI's New MCP Policy Controls Enhance AI Security","2026-03-26T01:26:52.222015+00:00",{"id":98,"slug":99,"title":100,"created_at":101},"27e39a8f-b65d-4f7b-a875-859e2b210156","mcp-standard-ai-tools-2026-en","MCP Standard in 2026: Integrating AI Tools","2026-03-26T01:27:43.127519+00:00",{"id":103,"slug":104,"title":105,"created_at":106},"165f9a19-c92d-46ba-b3f0-7125f662921d","rag-2026-transforming-enterprise-ai-en","How RAG in 2026 is Transforming Enterprise AI","2026-03-26T01:28:11.485236+00:00",{"id":108,"slug":109,"title":110,"created_at":111},"6a2a8e6e-b956-49d8-be12-cc47bdc132b2","mastering-ai-prompts-2026-guide-en","Mastering AI Prompts: A 2026 Guide for Developers","2026-03-26T01:29:07.835148+00:00",{"id":113,"slug":114,"title":115,"created_at":116},"d6653030-ee6d-4043-898d-d2de0388545b","evolving-world-prompt-engineering-en","The Evolving World of Prompt Engineering","2026-03-26T01:29:42.061205+00:00",{"id":118,"slug":119,"title":120,"created_at":121},"3ab2c67e-4664-4c67-a013-687a2f605814","garry-tan-open-sources-claude-code-toolkit-en","Garry Tan Open-Sources a Claude Code Toolkit","2026-03-26T08:26:20.245934+00:00",{"id":123,"slug":124,"title":125,"created_at":126},"66a7cbf8-7e76-41d4-9bbf-eaca9761bf69","github-ai-projects-to-watch-in-2026-en","20 GitHub AI Projects to Watch in 2026","2026-03-26T08:28:09.752027+00:00",{"id":128,"slug":129,"title":130,"created_at":131},"231306b3-1594-45b2-af81-bb80e41182f2","claude-code-vs-cursor-2026-en","Claude Code vs Cursor in 2026","2026-03-26T13:27:14.177468+00:00",{"id":133,"slug":134,"title":135,"created_at":136},"9f332fda-eace-448a-a292-2283951eee71","practical-github-guide-learning-ml-2026-en","A Practical GitHub Guide to Learning ML in 2026","2026-03-27T01:16:50.125678+00:00",{"id":138,"slug":139,"title":140,"created_at":141},"1b1f637d-0f4d-42bd-974b-07b53829144d","aiml-2026-student-ai-ml-lab-repo-review-en","AIML-2026 Is a Bare-Bones Student Lab Repo","2026-03-27T01:21:51.661231+00:00"]