{ description = "Bevy WASM website"; inputs = { flake-parts.url = "github:hercules-ci/flake-parts"; nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable"; rust-overlay = { url = "github:oxalica/rust-overlay"; inputs.nixpkgs.follows = "nixpkgs"; }; }; outputs = inputs@{ flake-parts, nixpkgs, rust-overlay, ... }: flake-parts.lib.mkFlake { inherit inputs; } { systems = [ "x86_64-linux" "aarch64-linux" "x86_64-darwin" "aarch64-darwin" ]; perSystem = { pkgs, system, ... }: let overlays = [ (import rust-overlay) ]; rustPkgs = import nixpkgs { inherit system overlays; }; rustToolchain = rustPkgs.rust-bin.fromRustupToolchainFile ./rust-toolchain.toml; cargoLock = fromTOML (builtins.readFile ./Cargo.lock); wasmBindgen = pkgs.lib.findFirst ( pkg: pkg.name == "wasm-bindgen" ) (throw "Could not find wasm-bindgen package") cargoLock.package; wasm-bindgen-cli = pkgs.buildWasmBindgenCli rec { src = pkgs.fetchCrate { pname = "wasm-bindgen-cli"; version = wasmBindgen.version; hash = "sha256-pcecKQd7E8Opw6bkFoE569epUi7gh5qpQF1e5PJY6V8="; }; cargoDeps = pkgs.rustPlatform.fetchCargoVendor { inherit src; inherit (src) pname version; hash = "sha256-vmUrWVU7kPJJxO5qIVeAkwQyWDELO1Z4Z5gitz2kco8="; }; }; in { devShells.default = pkgs.mkShell { buildInputs = [ rustToolchain wasm-bindgen-cli pkgs.binaryen pkgs.brotli pkgs.just pkgs.watchexec ]; }; }; }; }