JSer.info #600 - BunというZig言語とJavaScriptCore(WebKitのJavaScriptエンジン)を使って書かれたJavaScript Runtimeが公開されました。 oven-sh/bun: Incredibly fast JavaScript runtime, bundler, transpiler and package manager – all in one. Bunは"all-in-one JavaScript runtime"とあるように、TypeScript/JSXのTranspiler/Bundler/Task Runerを同梱し、npm互換のパッケージマネージャーやNode-API(N-API)互換の実装、FetchなどのWeb APIの実装をもっています。 Denoと似ている立ち位置のRuntimeですが、Node.js互換のAPIやpackage.jsonを扱えるnpm互換の実装を持つことで、Node.jsを置き換えて利用できることが意識されています。 Bunのロードマップは次のIssueで公開されています。 Bun's Roadmap · Issue #159 · oven-sh/bun また、Bunをどのように作ったかについては、次の動画でインタビューに答えています。 NextJS Was Too Slow...So He Made Bun??! Jarred Sumner & The Story Of Bun - YouTube Vite 3.0.0がリリースされました。 Vite 3.0 is out! | Vite vite/CHANGELOG.md at v3.0.0 · vitejs/vite デフォルトのビルドターゲットをESMとDynamic Import/import.metaをサポートしてるブラウザに変更、オプションの変更や削除、デフォルトportを5173に変更されています。 また、minifyに利用するterserパッケージへの依存をオプショナルへ変更、import.meta.globの仕様変更、Wasmファイルのimport方法の変更などが含まれています。 600回目の更新 この投稿で、JSer.infoは600回目の更新となります。 500回目の更新からは大体2年でした。 JSer.info 500回目の更新 - Slackワークスペース作成、コラボレータ募集、10年に向けて - JSer.info JSer.infoのslackワークスペースでは、気になるものを投稿したり、更新作業をやったりしています。 気になるものをメモ書きで投稿するぐらいの場所として扱うぐらいでいいと思います。 質問とかあったら調べて答える気もします。 JSer.infoのslackワークスペースは、次のリンクからだれでも自由に参加できます。 JSer.info slackに参加する また、GitHub Sponsorsでの支援も引き続き募集しています。 参考: 初めてでもわかる、GitHub Sponsorsでオープンソースを支援する方法 JavaScript周りも新しいツールとかがまた続々と出てきている気がします(特に最近はCDN Edgeを意識したものが多い印象)。 今回公開されたBunも、作者が週80-90時間ぐらいを1年かけて作っているそうです。 こういう労力を結構かけて作られるものが増えている感じはします。 新しいツールが出てもウェブ標準互換やNode.js互換やCDN Edgeでの互換性などの互換性は強く意識されている感じはします。 そのため、完全に全く新しい知識を必要とするものは意外と少なくて、既存のものに対して何かフラストレーションがあり、それを置き換えるために新しいツールとして作りながら既存との互換性を意識するといった形式が多い気がします(Bunの場合はフラストレーションが"速度"で、それを置き換えることを目標にして進化してきた)。 一方でGoogle Chromeが巨大となりウェブ標準のCentralization問題や、AppleのiOS/iPadでWebKit以外のブラウザエンジンを許容しないこと対する反発の高まりといった問題なども起きています。 What willwould a Chromium-only Web look like? Open Web Advocacy 色々な物事が大きくなっている感覚はありますが、それを小さな視点から見ていくのがJSer.infoなのかなと思いました。 ヘッドライン vite/CHANGELOG.md at v3.0.0 · vitejs/vite github.com/vitejs/vite/blob/v3.0.0/packages/vite/CHANGELOG.md vite ReleaseNote Vite 3.0.0リリース。 デフォルトのビルドターゲットをESMとDynamic Import/import.metaをサポートしてるブラウザに変更、オプションの変更や削除、デフォルトportを5173に変更。 minifyに利用するterserパッケージへの依存をオプショナルへ変更、import.meta.globの仕様変更、Wasmファイルのimport方法を変更など July 7th 2022 Security Releases | Node.js nodejs.org/en/blog/vulnerability/july-2022-security-releases/ node.js security ReleaseNote Node.js 14/16/18のセキュリティリリース。 アーティクル 応答性を示す新しい指標「INP」 | フロントエンドBlog | ミツエーリンクス www.mitsue.co.jp/knowledge/blog/frontend/202207/06_1002.html JavaScript performance article ユーザー操作に対するインタラクションにかかった時間を計測するメトリクスであるINP(Interaction to Next Paint)について。 FIDとは異なりページのロード後に関する値を計測する。 CrUX、LighthouseのTimespanモード、Web Vitalsでの計測データの取り方についてなど Interaction to Next Paint (INP) Announcing support for WASI on Cloudflare Workers blog.cloudflare.com/announcing-wasi-on-workers/ cloudflare WebAssembly article Cloudflare WorkersでWASIに対応したWebAssemblyファイルを実行するライブラリがサポートされたことについて Blogged Answers: How I Estimate NPM Package Market Share (and how Redux usage compares to other libraries) · Mark's Dev Blog blog.isquaredsoftware.com/2022/07/npm-package-market-share-estimates/ npm React redux article npmパッケージのシェアを読み取るかについて、Reactとステート管理ライブラリを例に解説している記事。 npmパッケージのダウンロード数、GitHubの依存数を絶対数として見た時の問題点や相対的に見る方法についてなど Flutter前史: ChromeがFlutterになるまで zenn.dev/mjhd/articles/680a19ae893c1e Flutter history article Flutterの歴史を振り返る動画について。 BlinkのForkから始まり、JavaScriptからDartへの切り替え、DOMからCanvasへの切り替えなどについて Before Flutter | Rubber Duck Engineering | Episode #100 - YouTube Before Flutter - Google スライド NestJS製GraphQLサーバの起動が遅かったので調査した話 - もうずっといなかぐらし katainaka0503.hatenablog.com/entry/2022/07/09/190340 TypeScript Tools article GraphQLのスキーマからTypeScriptのファイルを生成するツールのボトルネックを調べて修正した話。 0xを使ったボトルネック分析、ts-morphでのTypeScript ASTの変換のパフォーマンス問題の修正についてなど Executing shell commands from Node.js 2ality.com/2022/07/nodejs-child-process.html node.js article Node.jsのnode:child_processモジュールでのコマンドの実行についての解説。 spawnとexecの解説、spawnとexecの違い、Streamでの出力の読み取り、AbortControllerを使ったプロセスの終了、同期と非同期についてなど サイト、サービス、ドキュメント jcubic/wayne: Service Worker Routing library for in browser HTTP requests github.com/jcubic/wayne ServiceWorker library Service Worker向けのルーティングライブラリ Tailwind DX gimli.app/tailwinddx.html Chrome Extension CSS Tools Tailwind用のChrome拡張。 TailwindのクラスをChrome DevTools上で変更できる。 ソフトウェア、ツール、ライブラリ関係 samchon/typescript-json: Runtime type checkers and 5x faster JSON.stringify() github.com/samchon/typescript-json TypeScript JSON Tools library ttypescriptなどを使ったコード変換とRuntimeを合わせたJSONライブラリ。 TypeScriptの型を使ったRuntimeでの型チェック、JSON.stringify相当の処理を提供する oven-sh/bun: Incredibly fast JavaScript runtime, bundler, transpiler and package manager – all in one. github.com/oven-sh/bun JavaScript Tools Bun JavaScriptCoreとZig言語を使って書かれたJavaScriptのRuntime。 Bundler/TSのTranspiler/Task Runerを同梱し、npm互換のパッケージマネージャーやNode-API(N-API)互換の実装、FetchなどのWeb APIの実装をもつ。 oguimbal/pg-mem: An in memory postgres DB instance for your unit tests github.com/oguimbal/pg-mem JavaScript node.js PostgreSQL library testing deno In-memoryのPostgresエミュレーターライブラリ。 Postgresを使ったテストで利用する目的











