並び順

ブックマーク数

期間指定

  • から
  • まで

1 - 40 件 / 75件

新着順 人気順

WebAssemblyの検索結果1 - 40 件 / 75件

  • A baseline scrapscript compiler

    Scrapscript is a small, pure, functional, content-addressable, network-first programming language. fact 5 . fact = | 0 -> 1 | n -> n * fact (n - 1) My previous post introduced the language a bit and then talked about the interpreter that Chris and I built. This post is about the compiler that Chris and I built. In the beginning, there was an interpreter Writing a simple tree-walking interpreter is

    • 【今週水曜開催】Rust / WebAssemblyの最新動向をエキスパートが語る!TechFeed Experts Night#30 〜 Rust / WebAssembly最前線

      日本有数のエキスパートエンジニアとともに、最先端技術を掘り下げる「TechFeed Experts Night」、今回のテーマは「<strong>Rust / WebAssembly最前線</strong>」です。 こんにちは、テックフィード白石です。 日本有数のエキスパートエンジニアとともに、最先端技術を掘り下げる「TechFeed Experts Night」、今回のテーマは「Rust / WebAssembly最前線」です。 高速性と安全性、そしてモダンな言語仕様を兼ね備えるプログラミング言語「Rust」。Webブラウザのみならずサーバーサイドや仮想化/コンテナ技術、エッジコンピューティングに至るまで、活用事例が広がりつつあるWebAssembly。そしてRustは、WebAssembly開発における主要な言語としても注目されています。今回はそんなRust / WebAssembly

        【今週水曜開催】Rust / WebAssemblyの最新動向をエキスパートが語る!TechFeed Experts Night#30 〜 Rust / WebAssembly最前線
      • Why Google Sheets ported its calculation worker from JavaScript to WasmGC  |  web.dev

        Why Google Sheets ported its calculation worker from JavaScript to WasmGC Stay organized with collections Save and categorize content based on your preferences. Google Sheets is one of the first products at Google to use WasmGC on Chrome. The move was announced in 2022, and the Sheets and Chrome teams partnered on standardization, engineering, and tooling to provide real-time feedback on optimizat

          Why Google Sheets ported its calculation worker from JavaScript to WasmGC  |  web.dev
        • So You Want To Build A Browser Engine

          Eyes Above The Waves Robert O'Callahan. Christian. Repatriate Kiwi. Hacker. Archive 2024 June So You Want To Build A Browser Engine Real-Time Settlers Of Catan April Auckland Waterfront Half Marathon 2024 Whanganui River Journey 2024 2023 December Rees-Dart Track 2023 Caples/Routeburn Track 2023 Abel Tasman Kayaking November Mount Pirongia 2023 Blog Migrated April Why I Signed The "Pause" Letter A

          • WebAssemblyランタイム「Wasmer」がPHPに対応 Wasmerで「WordPressを3倍高速に動かす」手法とは

            WebAssemblyランタイム「Wasmer」がPHPに対応 Wasmerで「WordPressを3倍高速に動かす」手法とは:サーバレスプラットフォーム「Wasmer Edge」でも利用可能に Wasmerは、同社のWebAssemblyランタイム「Wasmer」とサーバレスアプリケーションプラットフォーム「Wasmer Edge」で、PHPを完全に実行できるようになったと発表した。 WebAssembly(Wasm)ランタイムを開発するWasmerは2024年5月24日(米国時間)、同社のWasmランタイム「Wasmer」とサーバレスアプリケーションプラットフォーム「Wasmer Edge」で、PHPのサポートがオープンβ段階に入り、これらの環境でPHPを完全に実行できるようになったと発表した。 オープンソースの汎用(はんよう)スクリプト言語であるPHPは、Web開発に広く利用されてい

              WebAssemblyランタイム「Wasmer」がPHPに対応 Wasmerで「WordPressを3倍高速に動かす」手法とは
            • Wasmで少しだけ手軽にRubyとRubyスクリプトを持ち運ぶ

              やりたいことRuby の環境を作らずに基本的なスクリプトを動作させたい 非エンジニアの環境で 1 ファイルでコマンドを動作させたいというほどの環境の縛りはない簡単に Docker 環境で基本的なコードが動けばよい、程度今回できたことWasm 版 Ruby を Wasm Runtime 上で動かす基本的な Ruby コードと Wasm 版 Ruby を一つの Wasm module にパッケージし、それを Wasm Runtime 上で動かす さらに Wasm module を compile しておいて起動を速くする(Rubyについてはまだまだ課題は多いが)Wasm を使うことで直接実行バイナリを生成できない言語でも JVM + .war 程度の使い勝手である程度のことができることが分かった実験に使ったのは macOS 13.6.7 ( arm64 darwin 22 )Ruby 3.2.

              • WebAssembly・PWAの習作アプリを作成して感じたこと

                はじめに この記事では、個人の習作としてwasm-image-resizerという簡易な画像リサイズ・フォーマット変換ツールをWebAssembly + PWA + Reactで作成したので、そのときに私の得た知見を記載したいと思います。 アプリとしては実に単純であんまり面白みもないのですが、半ばちょっとした好奇心と勢いで自分なりに作ってみました。手探りで拙いですが、ソースコードは以下に配布していますので、よかったら見てみてください。 アプリの技術目標 このアプリを通して私が考えた技術目標は以下のとおりです。 フロントエンドとしては言語はTypeScript、Viteをベースにする UIのフレームワークとしてReactを使用 画像変換などのアプリでやりたいコアな処理はRustで記述 wasm-bindgenとwasm-packでWebAssembly化・javascriptパッケージ化を行

                  WebAssembly・PWAの習作アプリを作成して感じたこと
                • Cirkoban: Sokoban meets cellular automata written in Scheme -- Spritely Institute

                  Last week, we released a small puzzle game called Cirkoban. Cirkoban is the very first publicly accessible application developed by Spritely that features the Goblins distributed programming library running in web browsers. We bet big on Hoot, our Scheme-to-WebAssembly compiler, a little over a year ago in order to bring Goblins to the web. That bet is starting to pay off! In this post, we’ll talk

                    Cirkoban: Sokoban meets cellular automata written in Scheme -- Spritely Institute
                  • 2024-06-13のJS: Storybook 8.1、Turborepo 2.0、Node v22.3.0(Snapshot Testing)

                    JSer.info #696 - Storybook 8.1がリリースされました。 Storybook 8.1 Storyファイルを作成するUIの追加、Subpath importsを使ったモックの対応、Playwright Component Testの対応しています。 pacakge.jsonのimportsフィールドで特定のモジュールを条件分岐して読み分けるための仕組みであるSubpath importsについては、次の記事でも解説されています。 Type-safe module mocking in Storybook Mocking modules • Storybook docs その他には、React 19/Angular 18のサポートなども含まれています。 Turborepo 2.0がリリースされました。 Turborepo 2.0 Turborepoはmonorepo向

                      2024-06-13のJS: Storybook 8.1、Turborepo 2.0、Node v22.3.0(Snapshot Testing)
                    • ざっと理解するRust 2024 Edition

                      本記事は、TechFeed Experts Night#30 〜 Rust / WebAssembly最前線のセッション書き起こし記事になります。 イベントページのタイムテーブルから、その他のセッションに関する記事もお読み頂けますので、一度アクセスしてみてください。 本セッションの登壇者 セッション動画 では、「ざっと理解するRust 2024 Edition」ということで発表させていただきます。 matsu7874と申します。今は株式会社estieでソフトウェアエンジニアとして働いていて、普段からRustでWebアプリケーションを開発する仕事をしています。 今日はまずEditionとは何ぞやという説明をして、その後にRust 2024 Editionの変更点について、今、出ている情報に基づいてお話しします。 3年ぶりの新 Edition がリリース まずEditionですが、今年2024

                        ざっと理解するRust 2024 Edition
                      • ScalaMatsuri 2024 で Scala の WebAssembly 対応について話しました / スタッフとして参加しました - たにしきんぐダム

                        2024年6月に開催された ScalaMatsuri 2024 に参加しました! Scala to WebAssembly: How and Why 今回は久々の大規模オフライン開催で、会場は久しぶりにお台場のプラザ平成でした。この会場でのScalaMatsuriに参加したのは5年前の2019年(と2018年に初参加)だったので、とてもエモい気持ちで会場に向かいました。 今年はスピーカー兼スタッフとしての参加で、スピーカーとしては最近開発しているScalaのWebAssembly対応について話し speakerdeck.com スタッフとしては、プログラムの選定や翻訳・(@scala_jpと@scalamatsuriの)SNS運用・(会場でたまに)通訳などをさせていただきました。大変だったけど楽しかった!来年以降もScalaMatsuri運営に関わっていきたい😎 久々の大規模オフライン開

                          ScalaMatsuri 2024 で Scala の WebAssembly 対応について話しました / スタッフとして参加しました - たにしきんぐダム
                        • 週刊Railsウォッチ: Ruby on Jets 6.0がRailsをサポートほか(20240620後編)|TechRacho by BPS株式会社

                          週刊Railsウォッチについて 各記事冒頭には🔗でパーマリンクを置いてあります: 社内やX.comでの議論などにどうぞ 「つっつきボイス」はRailsウォッチ公開前ドラフトを(鍋のように)社内有志でつっついたときの会話の再構成です👄 お気づきの点がありましたら@hachi8833までメンションをいただければ確認・対応いたします🙏 TechRachoではRubyやRailsなどの最新情報記事を平日に公開しています。TechRacho記事をいち早くお読みになりたい方はTwitterにて@techrachoのフォローをお願いします。また、タグやカテゴリごとにRSSフィードを購読することもできます(例:週刊Railsウォッチタグ) 🔗Rails: 先週の改修(Rails公式ニュースより) 公式更新情報: Ruby on Rails — Better error message, opt-i

                            週刊Railsウォッチ: Ruby on Jets 6.0がRailsをサポートほか(20240620後編)|TechRacho by BPS株式会社
                          • Rust and dynamically-sized thin pointers

                            One of Rust's notable differences from C is its requirement that all values have a defined size, which enables runtime bounds-checking and advanced static analysis tooling such as MIRI. For dynamically-sized types (DSTs) this requirement is implemented using thick pointers, such that each pointer to a dynamically-sized value is an (address, size) tuple. Thick pointers are more convenient and easie

                            • Lisp: Icing or Cake? — dthompson

                              The Spring Lisp Game Jam 2024 ended one week ago. 48 games were submitted, a new record for the jam! This past week has been a time for participants to play and rate each other’s games. As I explored the entries, I noticed two distinct meta-patterns in how people approached building games with Lisp. I think these patterns apply more broadly to all applications of Lisp. Let’s talk about these patte

                              • WebAssembly JSPI has a new API · V8

                                WebAssembly’s JavaScript Promise Integration (JSPI) API has a new API, available in Chrome release M126. We talk about what has changed, how to use it with Emscripten, and what is the roadmap for JSPI. JSPI is an API that allows WebAssembly applications that use sequential APIs to access Web APIs that are asynchronous. Many Web APIs are crafted in terms of JavaScript Promise objects: instead of im

                                • Building a faster, smarter, Chromebook experience with the best of Google technologies

                                  $200K 1 10th birthday 4 abusive ads 1 abusive notifications 2 accessibility 3 ad blockers 1 ad blocking 2 advanced capabilities 1 android 2 anti abuse 1 anti-deception 1 background periodic sync 1 badging 1 benchmarks 1 beta 83 better ads standards 1 billing 1 birthday 4 blink 2 browser 2 browser interoperability 1 bundles 1 capabilities 6 capable web 1 cds 1 cds18 2 cds2018 1 chrome 35 chrome 81

                                    Building a faster, smarter, Chromebook experience with the best of Google technologies
                                  • セキュリティ レポートを活用してウェブ アプリケーションへの潜在的な脅威を明らかにする

                                    .app 1 .dev 1 #11WeeksOfAndroid 13 #11WeeksOfAndroid Android TV 1 #Android11 3 #DevFest16 1 #DevFest17 1 #DevFest18 1 #DevFest19 1 #DevFest20 1 #DevFest21 1 #DevFest22 1 #DevFest23 1 #hack4jp 3 11 weeks of Android 2 A MESSAGE FROM OUR CEO 1 A/B Testing 1 A4A 4 Accelerator 6 Accessibility 1 accuracy 1 Actions on Google 16 Activation Atlas 1 address validation API 1 Addy Osmani 1 ADK 2 AdMob 32 Ads

                                      セキュリティ レポートを活用してウェブ アプリケーションへの潜在的な脅威を明らかにする
                                    • Legend of Worlds

                                      Dev Log 3 - How I spent 2 years building my own game engine (Rust, WASM, WebGPU) Welcome back legends! ⚔️ Welcome to the latest dev log for Legend of Worlds, the cross-platform, cross-play, 2D pixel art online sandbox multiplayer game where you can join, play, create, and share player-created worlds! Today, I'm excited to share the journey of how I spent the last two years building a custom game e

                                      • Node.js — Node v20.15.0 (LTS)

                                        2024-06-20, Version 20.15.0 'Iron' (LTS), @marco-ippolito test_runner: support test plans It is now possible to count the number of assertions and subtests that are expected to run within a test. If the number of assertions and subtests that run does not match the expected count, the test will fail. test('top level test', t => { t.plan(2); t.assert.ok('some relevant assertion here'); t.subtest('su

                                          Node.js — Node v20.15.0 (LTS)
                                        • Manifest V2 の段階的廃止を開始

                                          .app 1 .dev 1 #11WeeksOfAndroid 13 #11WeeksOfAndroid Android TV 1 #Android11 3 #DevFest16 1 #DevFest17 1 #DevFest18 1 #DevFest19 1 #DevFest20 1 #DevFest21 1 #DevFest22 1 #DevFest23 1 #hack4jp 3 11 weeks of Android 2 A MESSAGE FROM OUR CEO 1 A/B Testing 1 A4A 4 Accelerator 6 Accessibility 1 accuracy 1 Actions on Google 16 Activation Atlas 1 address validation API 1 Addy Osmani 1 ADK 2 AdMob 32 Ads

                                            Manifest V2 の段階的廃止を開始
                                          • Copy-and-Patch Compilation: A fast compilation algorithm for high-level languages and bytecode

                                            Fast compilation is important when compilation occurs at runtime, such as query compilers in modern database systems and WebAssembly virtual machines in modern browsers. We present copy-and-patch, an extremely fast compilation technique that also produces good quality code. It is capable of lowering both high-level languages and low-level bytecode programs to binary code, by stitching together cod

                                            • MicroPython 1.23 Brings Custom USB Devices, OpenAMP, Much More

                                              MicroPython is a wonderful Python interpreter that runs on many higher-end microcontrollers, from ESP8266 to STM32 to the RP2040. MicroPython lets you build devices quickly, and its latest release, 1.23, brings a number of improvements you should be aware of. The first one is custom USB device support, and it’s a big one. Do you want to build HID devices, or play with MIDI, or do multiple serial s

                                                MicroPython 1.23 Brings Custom USB Devices, OpenAMP, Much More
                                              • ブラウザ接続について

                                                Verethragnaのブラウザ接続を開発中なんですがなんとなく見えてきたのでこの辺で記事をば。 大長編です。 まず、従来のVerethragnaはWindows版のクライアントのみでした。Brynhildrの時はiOS版のKeroRemoteとかQtBrynhildrとかありましたのでクライアントはマルチプラットフォームと言えた感じです。 Verethragnaもかなり前からマルチプラットフォームのクライアントの計画はありまして、ブラウザ版を作ることで対応は可能だと考えブラウザ版の計画は始まったわけです。 が、しかし。 Brynhildrの時はパブリックモードという形で通常の接続方式ではなく暗号化も簡易的な接続方式を作りました。Appleも暗号化の通信に関しては厳しかったのでこーゆー簡易的な感じになったのですが、基本的にTCPでの接続でした。 ただ、Verethragnaでやろーとしてた

                                                  ブラウザ接続について
                                                • Manifest V2 phase-out begins

                                                  $200K 1 10th birthday 4 abusive ads 1 abusive notifications 2 accessibility 3 ad blockers 1 ad blocking 2 advanced capabilities 1 android 2 anti abuse 1 anti-deception 1 background periodic sync 1 badging 1 benchmarks 1 beta 83 better ads standards 1 billing 1 birthday 4 blink 2 browser 2 browser interoperability 1 bundles 1 capabilities 6 capable web 1 cds 1 cds18 2 cds2018 1 chrome 35 chrome 81

                                                    Manifest V2 phase-out begins
                                                  • サービス | Hexabase

                                                    GitHub Copilotなどは一度使うと、手放せなくなります。普段使っているエディタに統合されるので、手元の環境ですぐに使えるのも魅力です。 この記事では、プログラミングエディタやIDEの中で利用できる生成AIサービスをまとめて紹介します。 GitHub Copilot GitHub Copilotはリアルタイムのサジェスト、エラー時のコード修正提案、コードの自動補完などを行うAIアシスタントです。GitHub CopilotはGitHubのコードを学習しており、GitHub上のオープンソースプロジェクトも学習ソースとなっています。 利用できるエディタはVSCodeの他、NeovimやVisual Studio、JetBrainsの各種IDEなどがあります。また、GitHub CopilotはGitHubのプライベートリポジトリでも利用できます。 個人であれば月10ドル、ビジネスの場合

                                                    • 「Google Chrome」に6件の脆弱性 ~V8、WebAssembly、Dawnなどに問題/Windows環境にはv126.0.6478.114/115が展開中

                                                        「Google Chrome」に6件の脆弱性 ~V8、WebAssembly、Dawnなどに問題/Windows環境にはv126.0.6478.114/115が展開中
                                                      • WebAssemblyコンポーネントでHTTPハンドラーを作成 - Qiita

                                                        package component:http-sample; world sample { export wasi:http/incoming-handler@0.2.0; } [package] name = "http_sample" version = "0.1.0" edition = "2021" [dependencies] bitflags = "2.5.0" wit-bindgen-rt = "0.24.0" [lib] crate-type = ["cdylib"] [package.metadata.component] package = "component:http-sample" [package.metadata.component.dependencies] [package.metadata.component.target.dependencies] "

                                                          WebAssemblyコンポーネントでHTTPハンドラーを作成 - Qiita
                                                        • Blazor はウェブ開発の未来になりうるか? - インフラジスティックス・ジャパン株式会社Blog

                                                          C#でウェブアプリケーションを構築するという考え方は、Blazor が初めて導入したものではありません。マイクロソフトは、Silverlight や MVC のようなフレームワークで、同様のアイデアに昔から挑戦していました。しかしながら、Blazor WebAssembly は、WebAssembly をランタイム環境として活用し、プラグインや依存関係なしにブラウザで直接C#を実行できるようにするという新しいアプローチをとっています。 この記事では、Blazor の方向性、Blazor がどのようにウェブアプリケーションの開発体験を変えていくのか、Blazor はウェブ開発の未来になりうるのか、について考えていきたいと思います。 Blazor 選択時に注意しておくべき点 Blazor WebAssembly の場合 Blazor Server の場合 Auto レンダーモードの場合 Bla

                                                            Blazor はウェブ開発の未来になりうるか? - インフラジスティックス・ジャパン株式会社Blog
                                                          • ScalaMatsuri 2024に行ってきた

                                                            週末は5年ぶりにオフラインでの開催となった「ScalaMatsuri 2024」に行ってきました。 1日目 com.lihaoyiエコシステムの12年 12年前から取り組まれているツール開発のお話の後、後半の未来の話(提言)が目の覚める内容でした。 Scala to WebAssembly: 動機と方法 ScalaのWasmサポートは2019年からあったが、それがどうやって提供されているのか、また課題について最近進展があった事の説明が行われました。 WasmのGC周りはgolangも似たような課題があってRustよりサイズが大きくなってしまう、というのを聞いたことがあるので、そちらも動きがあるのか気になりました。 Project Loomの概要とScalaでの有用性 JDK21で入った軽量スレッド(Virtual Thread)や構造化並行処理(Structured Concurrency

                                                              ScalaMatsuri 2024に行ってきた
                                                            • GraalVM を使って WebAssembly を実行してみる - Qiita

                                                              Zenn にも書籍として公開しています. 読みやすい方で読み進めていただけたらと思います. Zenn の方が最新版です. この記事の目的 GraalVM ずっと触ってみたかったんですが,WebAsssembly 周りの実装が増えてきていることで万を持して動かしてみることにしました! こちらの記事では,公式ドキュメントに従って GraalVM を動かしてみた結果と実装例,コメント等を残します. こちらの記事を参考にして GraalVM を活用した Java プロジェクト開発 & WebAssembly 埋め込みの基礎を学ぶことができます. Java が初めての方も含め,なるべく誰でも手を動かして動作を再現できるように記載しています. GraalVM の基本機能紹介から行うので,WebAssembly 連携だけ気になる方は WebAssembly (Wasm) 連携する まで読み飛ばしてくださ

                                                                GraalVM を使って WebAssembly を実行してみる - Qiita
                                                              • C/C++ アプリを WASI で WasmEdge で動かすメモ - Qiita

                                                                WebAssemblyランタイム比較(Lucet, Wasmer, Wasmtime) https://zenn.dev/zaki_yama/scraps/cd40f7535b3224 wasi-sdk + wasmer-python で C/C++ アプリを WASM でポータブルに動かすメモ https://qiita.com/syoyo/items/300d4ef7fd105e69ad10 WASI で動かすのは wasmer, wasmtime が主にありましたが, 最近(2022/09 時点), WasmEdge というのも出てきました. AOT(Ahead of time) compile で高速実行目指す?っぽい. C/C++ アプリを速度落とさずのサンドボックス実行できそうな気がしますので試してみます. wasmer(C/C++ をポータブルなプラグインにして Python

                                                                  C/C++ アプリを WASI で WasmEdge で動かすメモ - Qiita
                                                                • Cloudflare Workers の無料プランで画像を圧縮する | 空雲 Blog

                                                                  Next.js のプロジェクトを Cloudflare にデプロイする場合、問題になるのが Vercel が提供している画像の自動圧縮機能です。これを Cloudflare でも実現するためには、Cloudflare Workers が使えそうですが、無料プランでは画像の圧縮機能を提供していません。意地でも無料で実現したいという乞食精神に乗っ取り、画像変換コードを書くことにしました。 画像の変換方法 Cloudflare Workers では、一度のリクエストで処理できる CPU 時間は 10ms です。非同期アクセスの待ち時間は含まれないので、純粋な処理時間です。高速に処理するのならネイティブコードを使うのが一番ですが、もちろん使えません。そこで、WebAssembly を使うことにしました。最近 WebAssembly というと Rust が主流ですが、libwebp を直接使いたいの

                                                                    Cloudflare Workers の無料プランで画像を圧縮する | 空雲 Blog
                                                                  • EightのエンジニアでRubyKaigi 2024に参加してきました! - Sansan Tech Blog

                                                                    はいさい!名刺アプリ「Eight」でエンジニアをしている鳥山(@pvcresin)です。 沖縄で行われたRubyKaigi 2024に、Eightのエンジニアメンバーで参加してきました! Eightロゴのポーズをする参加メンバー 今回は、それぞれの視点からRubyKaigiの感想や印象に残ったセッションについてまとめた記事をお送りします。 目次 鳥山(@pvcresin) 大久保(@kotaohkubo) 坂田 井上 まとめ 鳥山(@pvcresin) RubyKaigiへの思い RubyKaigiは今回が初参加です。Eightと同じようにRuby on Railsを採用している企業の方々に、アーキテクチャの課題や取り組みなどをヒアリングしたいと思い、参加しました。 ちなみに個人的にはRubyの型やWebAssembly活用に興味があるので、セッションはその辺りを中心に聞いてきました。 気

                                                                      EightのエンジニアでRubyKaigi 2024に参加してきました! - Sansan Tech Blog
                                                                    • RubyKaigi 2024 初参加の記録

                                                                      はじめに 沖縄で行われた RubyKaigi 2024 が、私の初 RubyKaigi でした! 初参加かつ、単身での参加かつ、他の技術カンファレンスにまともに参加したこともなかったので、右も左もワカラナイ状態でしたが、そんな中で学んだことや、各セッションのメモを記していきます。 ほぼ誰の役にも立たないものですが…… RubyKaigi未参加の方や初参加の方の参考になると嬉しいです 間違ってたり補足が必要な点が多いと思うので、ぜひご意見ご指摘あればコメントください! Tips 今回のカンファレンス参加で学んだことを書いていきます。 他の技術カンファレンスにも適用できるTipsだと思います。 早起きは三文の徳 Early bird チケットは半額くらいで購入できます。 イベントの参加登録もすぐ埋まるので早めに済ませておきましょう。早く行動するために、次の「常にアンテナを張る」が大事です。 常

                                                                        RubyKaigi 2024 初参加の記録
                                                                      • How to create a React app with Rust and WebAssembly

                                                                        SummaryIn this article, I'll introduce followings through creating simple demo application. How to create a React app quickly with create-react-app.How to create a Wasm library with Rust.How to combile a React app with Wasm library.You can see all code in tkat0/react-wasm-tutorial. What is WebAssembly?WebAssembly | MDN WebAssembly is a new type of code that can be run in modern web browsers — it i

                                                                          How to create a React app with Rust and WebAssembly
                                                                        • Web Assemblyが流行るかも

                                                                          先日、LT大会でWebAssemblyについてお話ししたのでその内容含めて記事を書きました。 調べようと思った背景 弊社ではWebデザインのすり合わせにFigmaを使用しているのですが、そんなFigmaはWebAssemblyを使っているから高パフォーマンスを実現しているらしく、気になったので調べてみました。 公式ブログを見ると、本当にWebAssemblyのおかげでロード時間が大幅短縮されていることがわかります。 WebAssemblyとは ウェブブラウザで高速に実行できるバイナリフォーマットの仕様 Javascript以外の言語(C++, Rust…)をブラウザ上で実行できるようにした コンパイル済みのコードを実行するため、処理速度が向上する ブラウザ上でのゲーム、動画編集、機械学習など → 環境も整ってきてこれから活用するサイトが増えてきそう そもそもjavascriptは Webサ

                                                                            Web Assemblyが流行るかも
                                                                          • 【Onyx】Crafting InterpretersのLox言語を実装してPlaygroundを作ってみた - Qiita

                                                                            TL; DR 全機能移植済みです!ぜひ遊んでみてください1。 はじめに 『Crafting Interpreters』は、「Lox」という言語の実装を通じ、手を動かしながら言語処理系の作り方を学べる本です(リンク先は邦訳版)。lexer, parser, evaluatorの説明にとどまらず、レキシカルスコープやクラスの設計等実践的な内容も盛り込まれているのが特徴です。 本書ではLox言語をJavaとCで実装していますが、今回私は Onyxへ移植して写経しました2。本記事では、Onyxに移植した際設計について考えたことやハマった点を振り返りたいと思います。 ソースコードはこちらです。 Why Onyx? オンライン上でLoxを実行できるPlayground(冒頭で紹介したページ)が作りたかったので、手軽にWebAssemblyへコンパイルできる言語を探していました。また、せっかくならオリジ

                                                                              【Onyx】Crafting InterpretersのLox言語を実装してPlaygroundを作ってみた - Qiita
                                                                            • runwasi関連の基礎知識 - Qiita

                                                                              runwasiとは ContainerdでWasmを動かすための共通platformを提供する。WASIをターゲットにcompileされたプログラムであれば、WASIに準拠したランタイム(wasmtimeなど)で実行できる。Rustで記述されている。 runcの代わりに、WebAssemblyランタイムを可能にするshim(異なる環境での互換性を保つソフトウェア層)であるrunwasiをcontainerdで動かすことが出来る。 Container毎に1つのshim processが存在するnormal modeと、すべてのshimを実行する単一のprocessで実行されるshared modeがある。 Wasm containerはコンパイルされたWasmバイトコードのみなので、Linuxコンテナよりも非常に軽量で起動が速く可搬性も高い。 Component containerd-shi

                                                                                runwasi関連の基礎知識 - Qiita
                                                                              • 描かれた物体周りの流れを計算するウェブアプリを作った忘備録:その1、流体計算編 - Qiita

                                                                                はじめに 格子ボルツマン法による 2 次元流体計算をブラウザにさせるウェブアプリを作った。ユーザーが自由に描いた物体を一様流中に置き、流れの様子を見守ることができる。流線は LIC 法によって可視化した。アプリの UI とお絵かきの部分は JavaScript、流体計算と可視化の部分は WebAssembly (Rust の wasm-bindgen) によって実装されている。この記事では、実装のために必要だった知見 (を得るために必要な情報) を忘備録としてまとめる。 今回は、アプリの全体構造について述べたあと、流体計算に関する部分と、その実装に用いた WebAssembly の利用方法についてメモする。可視化 (プロット) に関する部分はその2の記事にまとめたので、併せて読んで欲しい。アプリの UI の実装、お絵かきモードの実装についても、別の記事にしてまとめたい。 実装されたアプリは

                                                                                  描かれた物体周りの流れを計算するウェブアプリを作った忘備録:その1、流体計算編 - Qiita
                                                                                • WebAssemblyCompiler.jl で推しビューワを作った話 - Qiita

                                                                                  本日は Julia アドベントカレンダーの $N=10$ 日目です. Julia のコードを WebAssembly に変換しブラウザで実行する話です.例として生命維持活動として行なっている推しの自炊をしているので作ったものを飾るギャラリーを作る技術として採用しました(かなり後付け). Julia の IR(中間表現) から WebAssembly を作る 試みの解説は3年前に下記の記事を書きました. ただし,簡単な足し算しかできてませんでした. 最近の動向 クリスさんの投稿でかなり進化していることがわかりました. 例 WebAssemblyCompiler.jl にある例を見てみましょう.スマホだとみられなかったのでPCでご覧ください. 上記のスクショは GitHub 上でホスティングされた Documenter.jl のページです.まずすごいのが思ったよりも本格的なことがデモページで公

                                                                                    WebAssemblyCompiler.jl で推しビューワを作った話 - Qiita