Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion src/content/en/2025/capabilities.md
Original file line number Diff line number Diff line change
Expand Up @@ -224,7 +224,7 @@ The Media Session API experienced a small decline. Mobile adoption dropped from

This capability allows users to [install a Progressive Web App (PWA) as an app-like experience on their device](https://developer.chrome.com/blog/how_chrome_helps_users_install_the_apps_they_value).

When a site meets installability criteria, Chrome and other browsers may show an install badge (for example, an icon in the address bar or an Install menu option) that lets users add the app to their home screen or install it as a standalone app, while it also supports manual installation flows for sites that dont meet those criteria. Chrome further experiments with ML-driven install prompts on Android to help users discover installable experiences.
When a site meets installability criteria, Chrome and other browsers may show an install badge (for example, an icon in the address bar or an "Install" menu option) that lets users add the app to their home screen or install it as a standalone app, while it also supports manual installation flows for sites that don't meet those criteria. Chrome further experiments with ML-driven install prompts on Android to help users discover installable experiences.

{{ figure_markup(
image="add-to-home-screen.png",
Expand Down
14 changes: 7 additions & 7 deletions src/content/en/2025/webassembly.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
#See https://github.com/HTTPArchive/almanac.httparchive.org/wiki/Authors'-Guide#metadata-to-add-at-the-top-of-your-chapters
title: WebAssembly
description: WebAssembly chapter of the 2025 Web Almanac covering usage, languages, and post-MVP features.
hero_alt: Hero image of Web Almanac characters performing scientific experiments on various code symbols resulting in 1's and 0's coming out the other end.
hero_alt: Hero image of Web Almanac characters performing scientific experiments on various code symbols resulting in 1s and 0s coming out the other end.
authors: [nimeshgit]
reviewers: [nrllh, tunetheweb]
analysts: [nimeshgit]
Expand Down Expand Up @@ -168,7 +168,7 @@ Small modules of WebAssembly often found using AssemblyScript or Rust and Large
)
}}

These WebAssembly modules differ considerably in size, with the smallest being just a few kilobytes, and the largest one is 228.102 MB in desktops client and 166.415 MB for mobile client.
These WebAssembly modules differ considerably in size, with the smallest being just a few kilobytes, and the largest one is 228.102 MB in desktop's client and 166.415 MB for mobile client.

{{ figure_markup(
caption="Largest WebAssembly file detected.",
Expand Down Expand Up @@ -207,15 +207,15 @@ Let's look a bit more into the top three libraries:

WebAssembly can use various languages and using toolchains It can be compiled in binary format to server browser and desktop applications. It can carry much of the information in the source (programming language, application structure, variable names).

Each WebAssembly has import and or export components, Most WebAssembly toolchains create a small amount of JavaScript code, for the purposes of binding, making it easier to integrate components into JavaScript applications. These bindings often have recognisable function names which are present in the components exports or imports, giving a reliable mechanism for identifying the language that was used to author the component.
Each WebAssembly has import and or export components, Most WebAssembly toolchains create a small amount of JavaScript code, for the purposes of 'binding', making it easier to integrate components into JavaScript applications. These bindings often have recognisable function names which are present in the components exports or imports, giving a reliable mechanism for identifying the language that was used to author the component.

If WASM has not used obfuscation and or other techniques that are stripped down while building deliverable then we can use the rust libraries and WebAssembly Binary Toolkit (WABT) to understand the source programming language.

We enhanced the wasm-stats project and created tool <a hreflang="en" href="https://github.com/nimeshvk/almanac-wasm">`almanac-wasm`</a> that helps to download wasm file from the 3rd party server with preferred request parameters for example user-agent, compression method etc, validates the downloaded wasm file and with rust library and WABT (wasm2wat), It finds the authors language and populates wasm statistics along with language.
We enhanced the wasm-stats project and created tool <a hreflang="en" href="https://github.com/nimeshvk/almanac-wasm">`almanac-wasm`</a> that helps to download wasm file from the 3rd party server with preferred request parameters for example user-agent, compression method etc, validates the downloaded wasm file and with rust library and WABT (wasm2wat), It finds the author's language and populates wasm statistics along with language.

For example, [wasm-bindgen](https://crates.io/crates/wasm-bindgen) is a suite of tools that helps to generate high level code Rust-compiled WebAssembly (Wasm) component and JavaScript with name as "wbindgen" so If We import the component from WebAssembly and find "wbindgen" then there is clearly indication that component in WebAssembly was written in Rust language.

Like wise, We have researched and found various language indicators inside WebAssemblys different components with the tool.
Like wise, We have researched and found various language indicators inside WebAssembly's different components with the tool.

{{ figure_markup(
image="language-usage.png",
Expand All @@ -231,7 +231,7 @@ Like wise, We have researched and found various language indicators inside WebAs

We have found the .Net / Mono eco system based languages (including Blazor) reserves the first position for the language used in WebAssembly for desktop clients with 40.5% and for mobile clients with 39.8%

However 41.1% clients in desktop and 41.6% clients in mobile have language "Unknown" that means We could not find the authors (source) language because of missing language indicators or WebAssembly is stripped with the obfuscation or other techniques; These techniques are used to reduce the size, enable privacy/security features or to optimize the performance of the WebAssembly by the modern compilers.
However 41.1% clients in desktop and 41.6% clients in mobile have language "Unknown" that means We could not find the author's (source) language because of missing language indicators or WebAssembly is stripped with the obfuscation or other techniques; These techniques are used to reduce the size, enable privacy/security features or to optimize the performance of the WebAssembly by the modern compilers.

## WebAssembly features

Expand Down Expand Up @@ -259,4 +259,4 @@ With respect to the total extension usage in year 2021, It is observed that tota

There is a significant increase in the number of webpages using this technology for serverless, containerization, machine learning components and plug-n-play types of applications. The future of WebAssembly could be as a niche web technology, but as an entirely mainstream runtime on a wide range of other platforms. WebAssembly runtime (multi-language, lightweight, secure) are making it a popular choice for a wider range of non-browser applications for agnostic platforms.

Despite being a niche technology, WebAssembly is already adding value to the web. There are a number of web applications that benefit greatly from this technology. However, web applications are often not visible to the crawl which forms the basis of this study.
Despite being a niche technology, WebAssembly is already adding value to the web. There are a number of web applications that benefit greatly from this technology. However, web applications are often not visible to the 'crawl' which forms the basis of this study.