🙆
フロントエンドに関連するRustのOSSや学習リソース調査メモ
近年、フロントエンド関連のRustで実装されているOSSや学習する上での情報が増えてきている印象があって、そういうOSSおよび学習リソースのリンクを収集したメモ。
フロントエンド開発に少しでも関連してそうなものは主観で判断してリストに入れているので、フロントエンドとは言えないのでは?というものも含まれていると思う。
OSS
以下、OSSのGithubリポジトリへのリンク。
内容を精査しているわけではなくて見つけたものをリストにひとまず追加し続けて、主観でカテゴリ分けしたもの。
調査時点でRustによって実装されているであろうことがGithub上で確認できたものをリストアップしているだけで、安定版であるかどうかは考慮しない。
Node.js バージョンマネージャ
- volta-cli/volta: Volta: JS Toolchains as Code. ⚡
- Schniz/fnm: 🚀 Fast and simple Node.js version manager, built in Rust
トランスパイラ
WebAssembly
- thedodd/trunk: Build, bundle & ship your Rust WASM application to the web.
- sn99/wasm-template-rust: A wasm 🕸 template for Rust 🦀 to publish to gh-pages without npm-deploy
- rhysd/wain: WebAssembly implementation from scratch in Safe Rust with zero dependencies
- rustwasm/wasm-bindgen: Facilitating high-level interactions between Wasm modules and JavaScript
- rustwasm/wasm-pack: 📦✨ your favorite rust -> wasm workflow tool!
- wasm-tool/wasm-pack-plugin: webpack plugin for Rust
- wasmerio/wasmer: 🚀 The leading WebAssembly Runtime supporting WASI and Emscripten
フレームワーク
- yewstack/yew: Rust / Wasm framework for building client web apps
- chinedufn/percy: Build frontend browser apps with Rust + WebAssembly. Supports server side rendering.
- seed-rs/seed: A Rust framework for creating web apps
- ivanceras/sauron: A versatile web framework and library for building client-side and server-side web applications
- arctic-hen7/perseus: A high-level web development framework for Rust with full support for server-side rendering and static generation.
- sycamore-rs/sycamore: A reactive library for creating web apps in Rust and WebAssembly
- DioxusLabs/dioxus: Friendly React-like GUI library for desktop, web, mobile, and more.
CSS
- postcss-rs/postcss-rs: 🚀 Fast and 100% API compatible postcss replacer, built in Rust
- lukidoescode/css-in-rust: Style web components written in Rust with ease.
- parcel-bundler/parcel-css: A CSS parser, transformer, and minifier written in Rust.
- lemonrock/css-autoprefix: Rust crate providing a CSS autoprefixer
- jsdw/fuss: A Functional CSS Preprocessor
- mazznoer/csscolorparser-rs: Rust CSS color parser library
- kalcutter/rust-css-color: Parse color strings from CSS Color Module Level 4
SCSS
- connorskees/grass: A near-feature-complete Sass compiler written purely in Rust
- kaj/rsass: Sass reimplemented in rust with nom.
デスクトップアプリ
画像
- imager-io/imager: Automated image compression for efficiently distributing images on the web.
- shssoichiro/oxipng: Multithreaded PNG optimizer written in Rust
- silvia-odwyer/photon: ⚡ Rust/WebAssembly image processing library
SVG
データ可視化
- plotters-rs/plotters: A rust drawing library for high quality data plotting for both WASM and native, statically and realtimely 🦀 📈🚀
- igiagkiozis/plotly: Plotly for Rust
- tiby312/poloto
- askanium/rustplotlib: A pure Rust visualization library inspired by D3.js
テスト
ブラウザ
- servo/servo: The Servo Browser Engine
- lmt-swallow/puppy-browser: An example implementation of a tiny Web browser for educational purposes.
- maekawatoshiki/naglfar: A toy web browser implemented in Rust from scratch
HTTP
JSON
WebSocket
Lint
コードフォーマット
Deno
-
denoland/deno: A modern runtime for JavaScript and TypeScript.
- denoland/deno_ast: Source text parsing, lexing, and AST related functionality for Deno
- denoland/eszip: A compact file format to losslessly serialize an ECMAScript module graph into a single file
- denoland/deno_emit: Transpile and bundle JavaScript and TypeScript under Deno and Deno Deploy
- denoland/deno_lint: Blazing fast linter for JavaScript and TypeScript written in Rust
- denoland/dnt: Deno to npm package build tool.
- denoland/import_map: An implementation of WICG Import Maps specification
- denoland/rust-urlpattern: Rust implementation of the
URLPattern
web API - denoland/rusty_v8: Rust bindings for the V8 JavaScript engine
その他
- browserslist/browserslist-rs: Rust-ported Browserslist.
- koute/cargo-web: A Cargo subcommand for the client-side Web
- koute/stdweb: A standard library for the client-side Web
- cobalt-org/cobalt.rs: Static site generator written in Rust
- getzola/zola: A fast static site generator in a single binary with everything built-in. https://www.getzola.org
- ratel-rust/ratel-core: High performance JavaScript to JavaScript compiler with a Rust core
- rusty-ecma/RESS: Rusty EcmaScript Scanner
- DelSkayn/rquickjs: High level bindings to the quickjs javascript engine
- kdy1/rust-caniuse: caniuse-db for rust.
- orottier/web-audio-api-rs: A Rust implementation of the Web Audio API, for use in non-browser contexts
- asny/three-d: 2D/3D renderer - makes it simple to draw stuff across platforms (including web)
- cloudflare/workers-rs: Write Cloudflare Workers in 100% Rust via WebAssembly
- agrinman/tunnelto: Expose your local web server to the internet with a public URL.
- ekzhang/bore: 🕳 bore is a simple CLI tool for making tunnels to localhost
- Wulf/create-rust-app: Set up a modern rust+react web app by running one command.
- moonrepo/moon: A build system for the JavaScript ecosystem, written in Rust.
- lambda-fairy/maud: Compile-time HTML templates for Rust
- azu/license-generator: A Command line tool that generate
LICENSE
file. - Shopify/shadowenv: reversible directory-local environment variable manipulations
- Aleph-Alpha/ts-rs: Generate TypeScript bindings from Rust types
- egoist/dum: An npm scripts runner written in Rust.
- mgdm/htmlq: Like jq, but for HTML.
- ruffle-rs/ruffle: A Flash Player emulator written in Rust
- rome/tools: The Rome Toolchain. A linter, compiler, bundler, and more for JavaScript, TypeScript, HTML, Markdown, and CSS.
- napi-rs/napi-rs: A framework for building compiled Node.js add-ons in Rust via Node-API
- iced-rs/iced: A cross-platform GUI library for Rust, inspired by Elm
- facebook/relay: Relay is a JavaScript framework for building data-driven React applications.
- graphql-rust/graphql-client: Typed, correct GraphQL requests and responses in Rust
- seanmonstar/reqwest: An easy and powerful Rust HTTP Client
学習する上でのリソース
学ぶ上で参考になりそうなチュートリアルや記事などをリストに入れて主観でカテゴリ分けしたもの。
WebAssemblyに関してのみのリソースも含んでいる。
トランスパイラ
WebAssembly
- Rust から WebAssembly にコンパイルする - WebAssembly | MDN
- WASMとRustはVue.js/React.jsを打倒するのか? - JSへの侵略の歴史
- wip.md
- rustwasm/book: The Rust and WebAssembly Book
- What makes WebAssembly fast? - Mozilla Hacks - the Web developer blog
フレームワーク
Yew
- Web フロントエンドエンジニアのための Rust 製 Web フロントフレームワーク Yew 入門
- Single Page Applications using Rust
- Build a Rust + WebAssembly frontend web app with Yew - LogRocket Blog
- Rustで始めるwebフロント開発。フロントエンジニアのためのRustメモリ管理入門
- Rust + Yew = WebAssembly でかんばんライクなタスク管理アプリを作ってみました。 | 株式会社ヌーラボ(Nulab inc.)
Seed
Node.js
ブラウザ
デスクトップアプリ
- Rust によるデスクトップアプリケーションフレームワーク Tauri | 豆蔵デベロッパーサイト
- Will Tauri Be an Electron Killer? | by Zachary Lee | Better Programming
- DeepLのデスクトップアプリをRustとPreactとTailwind CSSでつくった | うなすけとあれこれ
その他
- Rust Is The Future of JavaScript Infrastructure – Lee Robinson
- yoshuawuyts/rust-for-js-peeps: Know JS, want to try Rust, but not sure where to start? This is for you!
- anshulrgoyal/rust-web-developer-roadmap: Roadmap to becoming a Rust Web Developer in 2021
- arendjr/rust-for-ts-devs: Rust courses for TypeScript developers
- Rust for frontend developers - LogRocket Blog
- Why building a front-end framework in Rust is hard
- Creating a Rich Text Editor using Rust and React | Fiberplane
Discussion