Best of WebAssembly — 2024

  1. 1
    Article
    Avatar of hnHacker News·2y

    taubyte/tau: Open source distributed Platform as a Service (PaaS). A self-hosted Vercel / Netlify / Cloudflare alternative.

    Tau is an open-source, distributed Platform as a Service (PaaS) designed to compete with major providers like Vercel, Netlify, and Cloudflare. It's a developer-friendly framework focused on minimal configuration, auto-discovery, and peer-to-peer networking. Using Git for infrastructure management, Tau emphasizes local development and seamless production deployment. Features include WebAssembly support, content-addressed storage, and a plugin system for extensibility.

  2. 2
    Article
    Avatar of communityCommunity Picks·2y

    PGlite - run Postgres everywhere

    PGlite is a WASM-based Postgres database that works in various JavaScript runtimes, including NodeJS, BUN, Deno, and browsers. It's lightweight, supports popular Postgres extensions, and is ideal for local-first applications, prototypes, local caches, and CI pipelines. The database can be easily installed via npm and used with regular SQL queries.

  3. 3
    Article
    Avatar of hnHacker News·2y

    cezaraugusto/extension.js: đź§© Plug-and-play, zero-config, cross-browser extension development tool.

    A plug-and-play, zero-config, cross-browser extension development tool with built-in support for TypeScript, WebAssembly, React, and modern JavaScript.

  4. 4
    Article
    Avatar of communityCommunity Picks·2y

    The V8 JavaScript Engine

    This post provides an in-depth explanation of the V8 JavaScript engine, its role in Node.js, and how it works. It also mentions the possibility of creating your own JavaScript runtime using V8.

  5. 5
    Article
    Avatar of fermyonFermyon·2y

    Announcing Spin 2.6

    Spin 2.6 introduces several enhancements, including experimentation with WebAssembly components, WASI 0.2.0, and registries. The update allows building WASI-HTTP components using the Rust Spin SDK without a Spin application’s manifest. Additionally, the release supports referencing components from OCI-compliant registries and introduces conformance tests for Spin applications across different runtime implementations. The update includes a breaking change related to Wasmtime 21 and plans to deprecate older Wasm modules with memory safety bugs. Contributors and community members are thanked for their efforts.

  6. 6
    Article
    Avatar of engineerscodexEngineer’s Codex·1y

    5 Non-LLM Software Trends To Be Excited About

    Innovations in software engineering outside the AI spotlight include local-first software improving user experience and data processing locally, advancements in WebAssembly allowing for near-native speed in the browser, a renewed interest in SQLite for its simplicity and performance, significant improvements in cross-platform mobile development with React Native and Flutter, and the use of automated reasoning for improving system reliability and security. These trends are shaping the future of software development through better performance, user experience, and reliability.

  7. 7
    Article
    Avatar of asayerasayer·2y

    Yew: The Top Rust Front End Framework for 2024

    Yew is a prominent Rust front-end framework in 2024, prioritizing speed and reliability through WebAssembly. It features a component-based architecture and seamless interoperability with JavaScript, making it a viable alternative to traditional JavaScript frameworks. The post guides building a to-do list app with Yew, delving into setup, integration with backend APIs, and performance benefits. While Yew offers substantial advantages in type safety and performance, it does require a steep learning curve and has a smaller ecosystem compared to established JavaScript frameworks.

  8. 8
    Article
    Avatar of medium_jsMedium·2y

    What’s new in Flutter 3.22

    Flutter 3.22 introduces new features such as WebAssembly, graphics rendering enhancements, and more options for AI integration. The Impeller rendering engine has significant updates, including a feature complete Vulkan backend on Android. Other improvements include widget state properties, dynamic view sizing, improved form validation, and flavor-conditional asset bundling. The release also includes updates for Android, iOS, ecosystem, and DevTools.

  9. 9
    Article
    Avatar of p99confP99 Conf·2y

    14 Books by P99 CONF Speakers: Latency, Wasm, Databases & More

    P99 CONF features over 60 speakers sharing insights on performance topics like distributed databases, Rust, C++, Go, Wasm, and more. The post highlights 14 books authored by the speakers, providing a rich resource for attendees. Registrants get a 30-day access to O’Reilly’s library and discounts from Manning publications. The highlighted books cover diverse topics such as data-intensive applications, technical writing, latency reduction, distributed systems, and eBPF.

  10. 10
    Article
    Avatar of quastorQuastor Daily·2y

    How Notion Decreased Latency by 20% with Caching

    Notion achieved a 20% improvement in page navigation speeds by implementing SQLite for client-side caching in their browser application. They used a 'SharedWorker' architecture with WebAssembly to overcome issues like SQLite corruption and slow disk reads/writes. The solution included utilizing web locks to prevent multiple writers and a SharedWorker to manage active tab writes, resulting in optimized caching performance.

  11. 11
    Article
    Avatar of devtoDEV·2y

    Building a Cloud Development Kit (CDK)

    A Cloud Development Kit (CDK) allows developers to define cloud infrastructure using familiar programming languages like TypeScript and Python, enhancing productivity and consistency. AWS CDK further simplifies this by converting high-level code into CloudFormation templates. Using WebAssembly and Extism, CDKs can support multiple languages, making infrastructure management more efficient. An example demonstrates creating an S3 bucket with version control using AWS CDK and TypeScript.

  12. 12
    Article
    Avatar of infoworldInfoWorld·1y

    10 hot programming trends — and 10 going cold

    Programming trends are continuously evolving, with certain technologies gaining popularity while others lose steam. Emerging trends include repatriation to control cloud bills, AI partners in coding, the use of memory-safe languages like Rust, and the adoption of WebAssembly for faster code execution. Meanwhile, traditional pair programming, C/C++ languages, and interpreters are seeing a decline in favor. Other shifts include a preference for CPUs over GPUs due to cost efficiency, the rise of zero-knowledge proofs for better privacy, and the popularity of static site generators. Trends reflect the adaptability of companies seeking better performance, cost control, and security.

  13. 13
    Article
    Avatar of zedZed·1y

    Life of a Zed Extension: Rust, WIT, Wasm

    Extensions in Zed, added earlier this year, enable additional languages, themes, snippets, and commands. These extensions are written in Rust, compiled into WebAssembly (Wasm) modules using the WebAssembly Component Model, and leverage Tree-sitter for parsing within Wasm. Extensions are managed via a repository and compiled using a CLI tool. Upon installation, extensions are downloaded as pre-compiled Wasm archives and integrated into Zed through a Wasm runtime. The effort showcases a harmonious integration of Rust and Wasm technologies, creating a powerful extension ecosystem.

  14. 14
    Article
    Avatar of devtoDEV·2y

    Run a Virtual Machine in Your Browser

    Discover how to run a complete virtual machine in your browser using WebAssembly. This guide covers setting up a web application with React.js, configuring the V86 emulator, and booting up FreeDOS or Alpine Linux within your browser. Detailed steps include setting up your web app, installing necessary components, and customizing the emulator for a retro look.

  15. 15
    Article
    Avatar of communityCommunity Picks·2y

    How Notion uses SQLite for Caching

    Notion uses SQLite for client-side caching to enhance performance in its apps across various platforms. Initially implemented in 2021, this approach significantly speeds up initial page loads and navigation. Notion employs WebAssembly to use SQLite in browsers and addresses challenges like database corruption, slow disk reads, and asynchronous loading to optimize the user experience.

  16. 16
    Article
    Avatar of quastorQuastor Daily·2y

    How Notion Decreased Latency by 20% with Caching

    Notion boosted page navigation speed by 20% on its website by implementing client-side caching using SQLite and WebAssembly. They utilized a 'SharedWorker' architecture to handle data writing, resolving issues related to database corruption and slow disk reads. This approach significantly improved user experience without regressing other performance metrics.

  17. 17
    Article
    Avatar of devtoDEV·2y

    New to DEV.to

    The author shares their 20+ years of software development experience and their current interests in leveraging technologies like WASM and generative AI integrations to improve product performance and user experience.

  18. 18
    Article
    Avatar of hnHacker News·1y

    trynova/nova: JS engine lolz

    Nova is a JavaScript and WebAssembly engine written in Rust, designed with a focus on data-oriented architecture. It follows the ECMAScript specification in spirit but introduces double definitions for Performance optimization. Presentations at noteworthy events highlighted both the general working of JavaScript engines and the specific advantages and costs of data-oriented design in Nova. For those interested, contribution guidelines and a detailed Heap structure walkthrough are provided.

  19. 19
    Article
    Avatar of fermyonFermyon·2y

    The Version Manager Plugin

    The Spin version manager (verman) plugin has been announced to simplify switching between different versions of Spin, an open-source framework for building WebAssembly applications. The plugin can be installed and updated independently of Spin, allowing for easy version management. Key commands include downloading, setting, updating, listing, and removing Spin versions.

  20. 20
    Article
    Avatar of hnHacker News·2y

    My First Game with Carimbo, My Homemade Engine

    The author shares their experience of creating a game engine named Carimbo and developing a game for their son using C++17 for the engine and Lua for scripting. They detail aspects such as resource management, the postal service for message passing inspired by Erlang, and the game loop mechanics, highlighting homemade coding as a labor of love similar to their father's handmade toys.

  21. 21
    Article
    Avatar of motherduckMotherDuck·2y

    What Happens When You Put a Database in Your Browser?

    WebAssembly has revolutionized browser capabilities, enabling high-performance applications like DuckDB directly in the browser. DuckDB Wasm is particularly useful for in-browser analytics, ad-hoc queries, and educational tools. A practical example includes a Firefox extension for displaying Parquet file schemas in GCP Cloud Storage. MotherDuck leverages DuckDB Wasm for responsive querying and offers an SDK for developers to create data-driven applications.

  22. 22
    Article
    Avatar of googledevsGoogle Developers·2y

    How We Built Purrfect Code: A Puzzle Game for Developers

    Purrfect Code is a box-pushing programming puzzle game designed for developers, built using Flutter, Dart, and the Flame game engine. Players use JavaScript to control a robot navigating grid-based puzzles to achieve efficient solutions. The game leverages WebAssembly for optimal browser performance and integrates with Google Developer Program for achievements. Firebase Hosting ensures secure and efficient global delivery. Project IDX was utilized for cloud-based development, offering features like intelligent code completion and real-time error checking.

  23. 23
    Article
    Avatar of fermyonFermyon·1y

    You Are Already Using Wasm In Production

    WebAssembly (Wasm) has been in production for years, used in popular applications like Microsoft Office.com, Figma, and streaming services such as BBC and Amazon Prime. Despite its proven stability and deployment, doubts persist regarding its readiness due to misconceptions about language support, WASI standardization, and threading capabilities. However, numerous server-side and serverless applications, including platforms like Fermyon Cloud, Fastly Compute@Edge, and Cloudflare Workers, demonstrate the widespread use and reliability of Wasm in production environments. The real-world adoption of WebAssembly proves its production-readiness.

  24. 24
    Article
    Avatar of hnHacker News·1y

    gosub-io/gosub-engine: A web browser in the making. More info at https://gosub.io

    The Gosub browser engine project aims to create a standalone library for parsing and rendering HTML5 and CSS3 documents. Although still in its early stages, the project supports parsing HTML5 and CSS3 into document trees and offers initial rendering capabilities. The project uses Rust and can be built into WebAssembly. Contributors are welcome to join the development effort, primarily focused on research and proof-of-concepts at this stage.

  25. 25
    Article
    Avatar of hnHacker News·2y

    nicbarker/clay: High performance UI layout library in C.

    Clay, a high performance 2D UI layout library in C, offers microsecond layout performance and a flex-box like model. It features zero dependencies, Wasm support, static arena-based memory usage, and a renderer-agnostic output. The library can compile to a 15kb uncompressed .wasm file for browser use, and it supports nested declarative syntax and various UI element macros like containers, text, images, and more. Additionally, it provides simple APIs for pointer interactions and scroll container handling. Clay was designed for immediate mode rendering but can also be integrated into retained mode systems using its API for visibility culling and custom elements.