Wasm game of life - A Rust and WebAssembly tutorial implementing the Game of Life

Overview
Comments
  • "npm init wasm-app www" doesn't produce a www-directory

    I'm a total noob regarding npm and tried to blindy follow the tutorial:

    In the chapter https://rustwasm.github.io/book/game-of-life/hello-world.html#putting-it-into-a-web-page one has to issue npm init wasm-app www

    This command asks me some questions and quits after creating a package.json:

    $ npm init wasm-app www
    This utility will walk you through creating a package.json file.
    It only covers the most common items, and tries to guess sensible defaults.
    
    See `npm help json` for definitive documentation on these fields
    and exactly what they do.
    
    Use `npm install <pkg> --save` afterwards to install a package and
    save it as a dependency in the package.json file.
    
    Press ^C at any time to quit.
    name: (wasm-game-of-life) 
    version: (1.0.0) 
    git repository: 
    keywords: 
    author: 
    license: (ISC) 
    About to write to /home/kai/dev/wasm-game-of-life/package.json:
    
    {
      "name": "wasm-game-of-life",
      "version": "1.0.0",
      "description": "a template for starting a rust-wasm project to be used with wasm-pack",
      "main": "index.js",
      "scripts": {
        "test": "echo \"Error: no test specified\" && exit 1"
      },
      "author": "",
      "license": "ISC"
    }
    
    
    Is this ok? (yes)
    

    According to the documentation of npm this seems to be correct, but doesn't behave as expected according to the tutorial. There's no www-directory.

    Did I oversee something in the prerequisites or do I have some wrong npm?

    npm version outputs

    { 'wasm-game-of-life': '1.0.0',
      npm: '3.5.2',
      ares: '1.14.0',
      cldr: '32.0.1',
      http_parser: '2.7.1',
      icu: '60.2',
      modules: '57',
      nghttp2: '1.30.0',
      node: '8.10.0',
      openssl: '1.1.0g',
      tz: '2017c',
      unicode: '10.0',
      uv: '1.18.0',
      v8: '6.2.414.50',
      zlib: '1.2.11' }
    
    opened by kawogi 11
  • Missing dependecy in www/package.json

    Missing dependecy in www/package.json

    package.json doesen't contain a dependency to wasm-game-of-life.

    Making the web app fail at runtime with: ERROR in ./index.js
    Module not found: Error: Can't resolve 'wasm-game-of-life'

    opened by inspirsea 10
  • Webpack error when parsing the wasm file

    Webpack error when parsing the wasm file

    I have cloned the repo and switch to the first chapter branch. The initial alert() example worked but after I pasted the Life implementation in my rust file I am getting this webpack error when running npm run serve:

    ERROR in ./wasm_game_of_life_bg.wasm
    Module parse failed: Unexpected section: 0x5f
    You may need an appropriate loader to handle this file type.
    Error: Unexpected section: 0x5f
    ...
     @ ./wasm_game_of_life.js 2:0-47 13:39-50 14:45-56 25:34-69 32:40-51 33:47-58 50:16-40 53:32-49 57:4-24 62:4-24 66:11-29
     @ ./index.js
     @ ./bootstrap.js
     @ multi (webpack)-dev-server/client?http://localhost:8081 ./bootstrap.js
    
    ERROR in chunk 0
    0.bootstrap.js
    /Users/andrei/projects/wasm_game_of_life/wasm_game_of_life_bg.wasm
    unexpected end
    

    My lib.rs looks like this:

    #![feature(proc_macro, wasm_custom_section, wasm_import_module)]
    
    extern crate wasm_bindgen;
    
    use wasm_bindgen::prelude::*;
    use std::fmt;
    
    #[repr(u8)]
    #[derive(Clone, Copy, Debug, PartialEq, Eq)]
    pub enum Cell {
        Dead = 0,
        Alive = 1,
    }
    
    #[wasm_bindgen]
    pub struct Universe {
        width: u32,
        height: u32,
        cells: Vec<Cell>,
    }
    
    
    #[wasm_bindgen]
    impl Universe {
    	pub fn new() -> Universe {
            let width = 64;
            let height = 64;
    
            let cells = (0..width * height)
                .map(|i| {
                    if i % 2 == 0 || i % 7 == 0 {
                        Cell::Alive
                    } else {
                        Cell::Dead
                    }
                })
                .collect();
    
            Universe {
                width,
                height,
                cells,
            }
        }
    
        pub fn render(&self) -> String {
            self.to_string()
        }
    
        fn get_index(&self, row: u32, column: u32) -> usize {
            (row * self.width + column) as usize
        }
    
         fn live_neighbor_count(&self, row: u32, column: u32) -> u8 {
            let mut count = 0;
            for delta_row in [self.height - 1, 0, 1].iter().cloned() {
                for delta_col in [self.width - 1, 0, 1].iter().cloned() {
                    if delta_row == 0 && delta_col == 0 {
                        continue;
                    }
    
                    let neighbor_row = (row + delta_row) % self.height;
                    let neighbor_col = (column + delta_col) % self.width;
                    let idx = self.get_index(neighbor_row, neighbor_col);
                    count += self.cells[idx] as u8;
                }
            }
            count
        }
    
         pub fn tick(&mut self) {
            let mut next = self.cells.clone();
    
            for row in 0..self.height {
                for col in 0..self.width {
                    let idx = self.get_index(row, col);
                    let cell = self.cells[idx];
                    let live_neighbors = self.live_neighbor_count(row, col);
    
                    let next_cell = match (cell, live_neighbors) {
                        // Rule 1: Any live cell with fewer than two live neighbours
                        // dies, as if caused by underpopulation.
                        (Cell::Alive, x) if x < 2 => Cell::Dead,
                        // Rule 2: Any live cell with two or three live neighbours
                        // lives on to the next generation.
                        (Cell::Alive, 2) | (Cell::Alive, 3) => Cell::Alive,
                        // Rule 3: Any live cell with more than three live
                        // neighbours dies, as if by overpopulation.
                        (Cell::Alive, x) if x > 3 => Cell::Dead,
                        // Rule 4: Any dead cell with exactly three live neighbours
                        // becomes a live cell, as if by reproduction.
                        (Cell::Dead, 3) => Cell::Alive,
                        // All other cells remain in the same state.
                        (otherwise, _) => otherwise,
                    };
    
                    next[idx] = next_cell;
                }
            }
    
            self.cells = next;
        }	
    }
    
    impl fmt::Display for Universe {
        fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
            for line in self.cells.as_slice().chunks(self.width as usize) {
                for &cell in line {
                    let symbol = if cell == Cell::Dead { "◻️" } else { "◼️" };
                    write!(f, "{}", symbol)?;
                }
                write!(f, "\n")?;
            }
    
            Ok(())
        }
    }
    

    It seems that the wasm file is wrongly compiled. But I can't figure out what happened.

    Any help or suggestion is kindly welcomed!

    opened by andrei-cacio 8
  • How to integrate rust wasm into angular 7 project?

    How to integrate rust wasm into angular 7 project?

    Summary

    How to integrate rust wasm into angular 7 project?

    Additional Details

    Angular 7 use webpack for packing, but it cannot recognize *.wasm file, I have tried to integrate rust wasm into angular 7 for a few days, but I still can't solve it, Could you provide an angular example project with call method of rust wasm?

    question 
    opened by mokeyish 7
  • Not able to get passed piping string into javascript

    Not able to get passed piping string into javascript

    Hi, I've gotten towards the end of section 4 in chapter 4 of the tutorial - the end of 'Rendering with Javascript'. The problem is that I only get the initial render, but it doesn't seem that I get any animation at all. I get an error in the console that links to some of the web assembly (and I can't personally understand the raw web assembly). The console error (Javascript) I keep getting is: RuntimeError: unreachable executed. Any help?

    opened by PrismaPhonic 5
  • Move more parts of the tutorial to rust

    Move more parts of the tutorial to rust

    There are parts in tutorial like this:

    // Import the WebAssembly memory at the top of the file.
    import { memory } from "wasm-game-of-life/wasm_game_of_life_bg";
    
    // ...
    
    const getIndex = (row, column) => {
      return row * width + column;
    };
    
    const drawCells = () => {
      const cellsPtr = universe.cells();
      const cells = new Uint8Array(memory.buffer, cellsPtr, width * height);
    
      ctx.beginPath();
    
      for (let row = 0; row < height; row++) {
        for (let col = 0; col < width; col++) {
          const idx = getIndex(row, col);
    
          ctx.fillStyle = cells[idx] === Cell.Dead
            ? DEAD_COLOR
            : ALIVE_COLOR;
    
          ctx.fillRect(
            col * (CELL_SIZE + 1) + 1,
            row * (CELL_SIZE + 1) + 1,
            CELL_SIZE,
            CELL_SIZE
          );
        }
      }
    
      ctx.stroke();
    };
    

    We can move them to rust

    enhancement 
    opened by ibaryshnikov 4
  • Bump copy-webpack-plugin from 5.1.1 to 6.0.3 in /www

    Bump copy-webpack-plugin from 5.1.1 to 6.0.3 in /www

    Bumps copy-webpack-plugin from 5.1.1 to 6.0.3.

    Release notes

    Sourced from copy-webpack-plugin's releases.

    v6.0.3

    6.0.3 (2020-06-30)

    Bug Fixes

    • do not execute on a child compiler (42f27c7)

    v6.0.2

    6.0.2 (2020-06-03)

    Bug Fixes

    • security problem
    • compatibility with 10.13 version of Node.js

    v6.0.1

    6.0.1 (2020-05-16)

    Bug Fixes

    • concurrency writing assets (#484) (bfc712d)
    • escaping special characters in the context option (0e62695)

    v6.0.0

    6.0.0 (2020-05-15)

    ⚠ BREAKING CHANGES

    • minimum supported Node.js version is 10.13,
    • the plugin now accepts an object, you should change new CopyPlugin(patterns, options) to new CopyPlugin({ patterns, options })
    • migrate on compilation.additionalAssets hook
    • the ignore option was removed in favor globOptions.ignore
    • the test option was removed in favor the transformPath option
    • the cache option was renamed to the cacheTransform option, cacheTransform option should have only directory and keys properties when it is an object
    • global context and ignore options were removed in favor patten.context and pattern.globOptions.ignore options
    • the missing file error is now an error, before it was a warning
    • the from option now can only be a string, if you use { from: { glob: 'directory/**', dot: false } } changed it to { from: 'directory/**', globOptions: { dot: false } }
    • the copyUnmodified was removed without replacements
    • the 2 version of webpack-dev-server is not supported anymore
    • the logLever was removed in favor the infrastructureLogging.level option, please read the documentation

    Features

    • implement the concurrency option (#466) (c176d7d)
    • implement the directory option for the cacheTransform option (29254e3)
    Changelog

    Sourced from copy-webpack-plugin's changelog.

    6.0.3 (2020-06-30)

    Bug Fixes

    • do not execute on a child compiler (42f27c7)

    6.0.2 (2020-06-03)

    Bug Fixes

    • security problem
    • compatibility with 10.13 version of Node.js

    6.0.1 (2020-05-16)

    Bug Fixes

    • concurrency writing assets (#484) (bfc712d)
    • escaping special characters in the context option (0e62695)

    6.0.0 (2020-05-15)

    ⚠ BREAKING CHANGES

    • minimum supported Node.js version is 10.13,
    • the plugin now accepts an object, you should change new CopyPlugin(patterns, options) to new CopyPlugin({ patterns, options })
    • migrate on compilation.additionalAssets hook
    • the ignore option was removed in favor globOptions.ignore
    • the test option was removed in favor the transformPath option
    • the cache option was renamed to the cacheTransform option, cacheTransform option should have only directory and keys properties when it is an object
    • global context and ignore options were removed in favor patten.context and pattern.globOptions.ignore options
    • the missing file error is now an error, before it was a warning
    • the from option now can only be a string, if you use { from: { glob: 'directory/**', dot: false } } changed it to { from: 'directory/**', globOptions: { dot: false } }
    • the copyUnmodified was removed without replacements
    • the 2 version of webpack-dev-server is not supported anymore
    • the logLevel was removed in favor the infrastructureLogging.level option, please read the documentation

    Features

    • implement the concurrency option (#466) (c176d7d)
    • implement the directory option for the cacheTransform option (29254e3)
    • implement the noErrorOnMissing option (#475) (e3803ce)
    • migrate on webpack built-in logger (#446) (5af02bc)
    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.

    If all status checks pass Dependabot will automatically merge this pull request.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language
    • @dependabot badge me will comment on this PR with code to add a "Dependabot enabled" badge to your readme

    Additionally, you can set the following in your Dependabot dashboard:

    • Update frequency (including time of day and day of week)
    • Pull request limits (per update run and/or open at any time)
    • Automerge options (never/patch/minor, and dev/runtime dependencies)
    • Out-of-range updates (receive only lockfile updates, if desired)
    • Security updates (receive only security updates, if desired)
    dependencies javascript 
    opened by dependabot-preview[bot] 2
  • Bump copy-webpack-plugin from 5.1.1 to 6.0.2 in /www

    Bump copy-webpack-plugin from 5.1.1 to 6.0.2 in /www

    Bumps copy-webpack-plugin from 5.1.1 to 6.0.2.

    Release notes

    Sourced from copy-webpack-plugin's releases.

    v6.0.2

    6.0.2 (2020-06-03)

    Bug Fixes

    • security problem
    • compatibility with 10.13 version of Node.js

    v6.0.1

    6.0.1 (2020-05-16)

    Bug Fixes

    • concurrency writing assets (#484) (bfc712d)
    • escaping special characters in the context option (0e62695)

    v6.0.0

    6.0.0 (2020-05-15)

    ⚠ BREAKING CHANGES

    • minimum supported Node.js version is 10.13,
    • the plugin now accepts an object, you should change new CopyPlugin(patterns, options) to new CopyPlugin({ patterns, options })
    • migrate on compilation.additionalAssets hook
    • the ignore option was removed in favor globOptions.ignore
    • the test option was removed in favor the transformPath option
    • the cache option was renamed to the cacheTransform option, cacheTransform option should have only directory and keys properties when it is an object
    • global context and ignore options were removed in favor patten.context and pattern.globOptions.ignore options
    • the missing file error is now an error, before it was a warning
    • the from option now can only be a string, if you use { from: { glob: 'directory/**', dot: false } } changed it to { from: 'directory/**', globOptions: { dot: false } }
    • the copyUnmodified was removed without replacements
    • the 2 version of webpack-dev-server is not supported anymore
    • the logLever was removed in favor the infrastructureLogging.level option, please read the documentation

    Features

    • implement the concurrency option (#466) (c176d7d)
    • implement the directory option for the cacheTransform option (29254e3)
    • implement the noErrorOnMissing option (#475) (e3803ce)
    • migrate on webpack built-in logger (#446) (5af02bc)

    Bug Fixes

    ... (truncated)
    Changelog

    Sourced from copy-webpack-plugin's changelog.

    6.0.2 (2020-06-03)

    Bug Fixes

    • security problem
    • compatibility with 10.13 version of Node.js

    6.0.1 (2020-05-16)

    Bug Fixes

    • concurrency writing assets (#484) (bfc712d)
    • escaping special characters in the context option (0e62695)

    6.0.0 (2020-05-15)

    ⚠ BREAKING CHANGES

    • minimum supported Node.js version is 10.13,
    • the plugin now accepts an object, you should change new CopyPlugin(patterns, options) to new CopyPlugin({ patterns, options })
    • migrate on compilation.additionalAssets hook
    • the ignore option was removed in favor globOptions.ignore
    • the test option was removed in favor the transformPath option
    • the cache option was renamed to the cacheTransform option, cacheTransform option should have only directory and keys properties when it is an object
    • global context and ignore options were removed in favor patten.context and pattern.globOptions.ignore options
    • the missing file error is now an error, before it was a warning
    • the from option now can only be a string, if you use { from: { glob: 'directory/**', dot: false } } changed it to { from: 'directory/**', globOptions: { dot: false } }
    • the copyUnmodified was removed without replacements
    • the 2 version of webpack-dev-server is not supported anymore
    • the logLevel was removed in favor the infrastructureLogging.level option, please read the documentation

    Features

    • implement the concurrency option (#466) (c176d7d)
    • implement the directory option for the cacheTransform option (29254e3)
    • implement the noErrorOnMissing option (#475) (e3803ce)
    • migrate on webpack built-in logger (#446) (5af02bc)

    Bug Fixes

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.

    If all status checks pass Dependabot will automatically merge this pull request.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language
    • @dependabot badge me will comment on this PR with code to add a "Dependabot enabled" badge to your readme

    Additionally, you can set the following in your Dependabot dashboard:

    • Update frequency (including time of day and day of week)
    • Pull request limits (per update run and/or open at any time)
    • Automerge options (never/patch/minor, and dev/runtime dependencies)
    • Out-of-range updates (receive only lockfile updates, if desired)
    • Security updates (receive only security updates, if desired)
    dependencies javascript 
    opened by dependabot-preview[bot] 2
  • Bump copy-webpack-plugin from 5.1.1 to 6.0.1 in /www

    Bump copy-webpack-plugin from 5.1.1 to 6.0.1 in /www

    Bumps copy-webpack-plugin from 5.1.1 to 6.0.1.

    Release notes

    Sourced from copy-webpack-plugin's releases.

    v6.0.1

    6.0.1 (2020-05-16)

    Bug Fixes

    • concurrency writing assets (#484) (bfc712d)
    • escaping special characters in the context option (0e62695)

    v6.0.0

    6.0.0 (2020-05-15)

    ⚠ BREAKING CHANGES

    • minimum supported Node.js version is 10.13,
    • the plugin now accepts an object, you should change new CopyPlugin(patterns, options) to new CopyPlugin({ patterns, options })
    • migrate on compilation.additionalAssets hook
    • the ignore option was removed in favor globOptions.ignore
    • the test option was removed in favor the transformPath option
    • the cache option was renamed to the cacheTransform option, cacheTransform option should have only directory and keys properties when it is an object
    • global context and ignore options were removed in favor patten.context and pattern.globOptions.ignore options
    • the missing file error is now an error, before it was a warning
    • the from option now can only be a string, if you use { from: { glob: 'directory/**', dot: false } } changed it to { from: 'directory/**', globOptions: { dot: false } }
    • the copyUnmodified was removed without replacements
    • the 2 version of webpack-dev-server is not supported anymore
    • the logLever was removed in favor the infrastructureLogging.level option, please read the documentation

    Features

    • implement the concurrency option (#466) (c176d7d)
    • implement the directory option for the cacheTransform option (29254e3)
    • implement the noErrorOnMissing option (#475) (e3803ce)
    • migrate on webpack built-in logger (#446) (5af02bc)

    Bug Fixes

    Changelog

    Sourced from copy-webpack-plugin's changelog.

    6.0.1 (2020-05-16)

    Bug Fixes

    • concurrency writing assets (#484) (bfc712d)
    • escaping special characters in the context option (0e62695)

    6.0.0 (2020-05-15)

    ⚠ BREAKING CHANGES

    • minimum supported Node.js version is 10.13,
    • the plugin now accepts an object, you should change new CopyPlugin(patterns, options) to new CopyPlugin({ patterns, options })
    • migrate on compilation.additionalAssets hook
    • the ignore option was removed in favor globOptions.ignore
    • the test option was removed in favor the transformPath option
    • the cache option was renamed to the cacheTransform option, cacheTransform option should have only directory and keys properties when it is an object
    • global context and ignore options were removed in favor patten.context and pattern.globOptions.ignore options
    • the missing file error is now an error, before it was a warning
    • the from option now can only be a string, if you use { from: { glob: 'directory/**', dot: false } } changed it to { from: 'directory/**', globOptions: { dot: false } }
    • the copyUnmodified was removed without replacements
    • the 2 version of webpack-dev-server is not supported anymore
    • the logLevel was removed in favor the infrastructureLogging.level option, please read the documentation

    Features

    • implement the concurrency option (#466) (c176d7d)
    • implement the directory option for the cacheTransform option (29254e3)
    • implement the noErrorOnMissing option (#475) (e3803ce)
    • migrate on webpack built-in logger (#446) (5af02bc)

    Bug Fixes

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.

    If all status checks pass Dependabot will automatically merge this pull request.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language
    • @dependabot badge me will comment on this PR with code to add a "Dependabot enabled" badge to your readme

    Additionally, you can set the following in your Dependabot dashboard:

    • Update frequency (including time of day and day of week)
    • Pull request limits (per update run and/or open at any time)
    • Automerge options (never/patch/minor, and dev/runtime dependencies)
    • Out-of-range updates (receive only lockfile updates, if desired)
    • Security updates (receive only security updates, if desired)
    dependencies javascript 
    opened by dependabot-preview[bot] 2
  • Error on last step of tutorial section 5.1

    Error on last step of tutorial section 5.1

    I'm working through the tutorial and setting up the boilerplace, etc for the hello world app. Everything runs smoothly until I get an error on the last step that I cannot diagnose.

    ` thodges@lovelace:~/Workspace/Rust/wasm-game-of-life/www$ npm run start

    [email protected] start /home/thodges/Workspace/Rust/wasm-game-of-life/www webpack-dev-server

    ℹ 「wds」: Project is running at http://localhost:8080/ ℹ 「wds」: webpack output is served from / Failed to decode custom "name" section @1734; ignoring (integer representation too long). ✖ 「wdm」: Hash: cd84f870a9f476e7fb21 Version: webpack 4.29.3 Time: 554ms Built at: 18/02/2019 12:57:41 Asset Size Chunks Chunk Names 0.bootstrap.js 3.15 KiB 0 [emitted]
    bootstrap.js 354 KiB main [emitted] main index.html 175 bytes [emitted]
    Entrypoint main = bootstrap.js [0] multi (webpack)-dev-server/client?http://localhost:8080 ./bootstrap.js 40 bytes {main} [built] [../pkg/wasm_game_of_life.js] 708 bytes {0} [built] [./bootstrap.js] 279 bytes {main} [built] [./index.js] 58 bytes {0} [built] [./node_modules/ansi-html/index.js] 4.16 KiB {main} [built] [./node_modules/events/events.js] 13.3 KiB {main} [built] [./node_modules/html-entities/index.js] 231 bytes {main} [built] [./node_modules/loglevel/lib/loglevel.js] 7.68 KiB {main} [built] [./node_modules/url/url.js] 22.8 KiB {main} [built] [./node_modules/webpack-dev-server/client/index.js?http://localhost:8080] (webpack)-dev-server/client?http://localhost:8080 7.78 KiB {main} [built] [./node_modules/webpack-dev-server/client/overlay.js] (webpack)-dev-server/client/overlay.js 3.58 KiB {main} [built] [./node_modules/webpack-dev-server/client/socket.js] (webpack)-dev-server/client/socket.js 1.05 KiB {main} [built] [./node_modules/webpack-dev-server/node_modules/strip-ansi/index.js] (webpack)-dev-server/node_modules/strip-ansi/index.js 161 bytes {main} [built] [./node_modules/webpack/hot sync ^./log$] (webpack)/hot sync nonrecursive ^./log$ 170 bytes {main} [built] [./node_modules/webpack/hot/emitter.js] (webpack)/hot/emitter.js 75 bytes {main} [built] + 14 hidden modules

    ERROR in ../pkg/wasm_game_of_life_bg.wasm Module parse failed: Unexpected section: 0xfe You may need an appropriate loader to handle this file type. Error: Unexpected section: 0xfe at new CompileError (/home/thodges/Workspace/Rust/wasm-game-of-life/www/node_modules/@webassemblyjs/helper-api-error/lib/index.js:40:109) at parseSection (/home/thodges/Workspace/Rust/wasm-game-of-life/www/node_modules/@webassemblyjs/wasm-parser/lib/decoder.js:1542:11) at Object.decode (/home/thodges/Workspace/Rust/wasm-game-of-life/www/node_modules/@webassemblyjs/wasm-parser/lib/decoder.js:1559:25) at decode (/home/thodges/Workspace/Rust/wasm-game-of-life/www/node_modules/@webassemblyjs/wasm-parser/lib/index.js:240:21) at WebAssemblyParser.parse (/home/thodges/Workspace/Rust/wasm-game-of-life/www/node_modules/webpack/lib/wasm/WebAssemblyParser.js:74:19) at doBuild.err (/home/thodges/Workspace/Rust/wasm-game-of-life/www/node_modules/webpack/lib/NormalModule.js:460:32) at runLoaders (/home/thodges/Workspace/Rust/wasm-game-of-life/www/node_modules/webpack/lib/NormalModule.js:342:12) at /home/thodges/Workspace/Rust/wasm-game-of-life/www/node_modules/loader-runner/lib/LoaderRunner.js:373:3 at iterateNormalLoaders (/home/thodges/Workspace/Rust/wasm-game-of-life/www/node_modules/loader-runner/lib/LoaderRunner.js:214:10) at Array. (/home/thodges/Workspace/Rust/wasm-game-of-life/www/node_modules/loader-runner/lib/LoaderRunner.js:205:4) at Storage.finished (/home/thodges/Workspace/Rust/wasm-game-of-life/www/node_modules/enhanced-resolve/lib/CachedInputFileSystem.js:43:16) at provider (/home/thodges/Workspace/Rust/wasm-game-of-life/www/node_modules/enhanced-resolve/lib/CachedInputFileSystem.js:79:9) at /home/thodges/Workspace/Rust/wasm-game-of-life/www/node_modules/graceful-fs/graceful-fs.js:78:16 at FSReqWrap.readFileAfterClose [as oncomplete] (fs.js:511:3) @ ../pkg/wasm_game_of_life.js 2:0-47 8:71-82 9:45-56 26:11-21 @ ./index.js @ ./bootstrap.js @ multi (webpack)-dev-server/client?http://localhost:8080 ./bootstrap.js

    ERROR in chunk 0 ddc111f061f0f6c2679f.module.wasm /home/thodges/Workspace/Rust/wasm-game-of-life/pkg/wasm_game_of_life_bg.wasm unexpected end ℹ 「wdm」: Failed to compile.

    `

    opened by thodges314 2
  • Bump webpack-cli from 3.3.12 to 4.7.0 in /www

    Bump webpack-cli from 3.3.12 to 4.7.0 in /www

    Bumps webpack-cli from 3.3.12 to 4.7.0.

    Release notes

    Sourced from webpack-cli's releases.

    v4.7.0

    4.7.0 (2021-05-06)

    Bug Fixes

    Features

    v4.6.0

    4.6.0 (2021-03-27)

    Bug Fixes

    Features

    • added WEBPACK_PACKAGE env var to use custom webpack package (#2556) (3d1e485)
    • added WEBPACK_CLI_SKIP_IMPORT_LOCAL env var to skip local import (#2546) (e130822)
    • allow string value for the --hot option (#2444) (8656e78)
    • display used config path when logging level=log (#2431) (f8406e1)

    v4.5.0

    4.5.0 (2021-02-02)

    Notes

    • now you can use webpack.config.mjs and webpack.config.js with { "type": "module" } in package.json
    • you can avoid using the cross-env package:

    Before:

    {
        "scripts": {
            "build": "cross-env NODE_ENV=production webpack --config build/webpack.config.js"
        }
    }
    

    ... (truncated)

    Changelog

    Sourced from webpack-cli's changelog.

    4.7.0 (2021-05-06)

    Bug Fixes

    Features

    4.6.0 (2021-03-27)

    Bug Fixes

    Features

    • added WEBPACK_PACKAGE env var to use custom webpack package (#2556) (3d1e485)
    • added WEBPACK_CLI_SKIP_IMPORT_LOCAL env var to skip local import (#2546) (e130822)
    • allow string value for the --hot option (#2444) (8656e78)
    • display used config path when logging level=log (#2431) (f8406e1)

    4.5.0 (2021-02-02)

    Notes

    • now you can use webpack.config.mjs and webpack.config.js with { "type": "module" } in package.json
    • you can avoid using the cross-env package:

    Before:

    {
        "scripts": {
            "build": "cross-env NODE_ENV=production webpack --config build/webpack.config.js"
        }
    }
    

    Now (you can remove the cross-env if you don't use it somewhere else):

    </tr></table> 
    

    ... (truncated)

    Commits
    • 4edf3ac chore(release): publish new version
    • ea4c159 chore(deps-dev): bump ts-jest from 26.5.5 to 26.5.6 (#2692)
    • dc0481b fix: send warning regarding invalid template to stderr (#2687)
    • a8475f1 chore(deps-dev): bump @​types/node
    • 73cd573 chore(deps-dev): bump @​typescript-eslint/parser
    • a91df4f chore(deps-dev): bump @​typescript-eslint/eslint-plugin (#2689)
    • af6c02b test: cleanup (#2688)
    • 60abcd4 feat: upgrade to GitHub native dependabot (#2682)
    • 509604f chore(deps-dev): bump @​types/yeoman-generator
    • 9d46b72 docs: add more information (#2683)
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.

    If all status checks pass Dependabot will automatically merge this pull request.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language
    • @dependabot badge me will comment on this PR with code to add a "Dependabot enabled" badge to your readme

    Additionally, you can set the following in your Dependabot dashboard:

    • Update frequency (including time of day and day of week)
    • Pull request limits (per update run and/or open at any time)
    • Automerge options (never/patch/minor, and dev/runtime dependencies)
    • Out-of-range updates (receive only lockfile updates, if desired)
    • Security updates (receive only security updates, if desired)
    dependencies javascript 
    opened by dependabot-preview[bot] 1
  • Without bundler

    Without bundler

    :warning: this requires externref support ... which is not present on the default Google Chrome (and others). Probably a deal killer for now (?)

    Live demo of these changes here: https://dapps.unintuitive.org/wasm_game_of_life/

    For me, the less "node" stuff, the easier it is to focus on the fundamentals. So, I am proposing these changes (89% removal).

    Removing node from the picture makes this more approachable and hackable for the node-ignorant (like me).

    No idea what/if this breaks anything like CI/CD.

    I got a whole lot out of the various documentation, tutorials, and videos surrounding this repo. Thanks all! Top notch.

    opened by stnbu 0
  • Improve JS performance and fix draw order bug

    Improve JS performance and fix draw order bug

    • Improved render performance by bringing both alive + dead cell rendering into one for loop
    • Fixed draw order bug
      • When the canvas click event listener is run and cells are swapped, the canvas re-draws the cells before the grid, which is dissimilar to the main render loop
    opened by Arkanic 0
  • Bump webpack-cli from 3.3.12 to 4.7.2 in /www

    Bump webpack-cli from 3.3.12 to 4.7.2 in /www

    Bumps webpack-cli from 3.3.12 to 4.7.2.

    Release notes

    Sourced from webpack-cli's releases.

    v4.7.2

    4.7.2 (2021-06-07)

    Note: Version bump only for package webpack-cli

    v4.7.1

    4.7.1 (2021-06-07)

    Bug Fixes

    v4.7.0

    4.7.0 (2021-05-06)

    Bug Fixes

    Features

    v4.6.0

    4.6.0 (2021-03-27)

    Bug Fixes

    Features

    • added WEBPACK_PACKAGE env var to use custom webpack package (#2556) (3d1e485)
    • added WEBPACK_CLI_SKIP_IMPORT_LOCAL env var to skip local import (#2546) (e130822)
    • allow string value for the --hot option (#2444) (8656e78)
    • display used config path when logging level=log (#2431) (f8406e1)

    v4.5.0

    4.5.0 (2021-02-02)

    Notes

    ... (truncated)

    Changelog

    Sourced from webpack-cli's changelog.

    4.7.2 (2021-06-07)

    Note: Version bump only for package webpack-cli (due @webpack-cli/serve)

    4.7.1 (2021-06-07)

    Bug Fixes

    4.7.0 (2021-05-06)

    Bug Fixes

    Features

    4.6.0 (2021-03-27)

    Bug Fixes

    Features

    • added WEBPACK_PACKAGE env var to use custom webpack package (#2556) (3d1e485)
    • added WEBPACK_CLI_SKIP_IMPORT_LOCAL env var to skip local import (#2546) (e130822)
    • allow string value for the --hot option (#2444) (8656e78)
    • display used config path when logging level=log (#2431) (f8406e1)

    4.5.0 (2021-02-02)

    Notes

    • now you can use webpack.config.mjs and webpack.config.js with { "type": "module" } in package.json
    • you can avoid using the cross-env package:

    Before:

    ... (truncated)

    Commits
    • 68ef056 chore(release): publish new version
    • 2d7ab35 fix: broken serve with new CLI API (#2770)
    • 060268b docs: update CHANGELOG
    • 2be9b92 chore(release): publish new version
    • 598008a chore(deps-dev): bump ts-jest from 27.0.2 to 27.0.3 (#2764)
    • 625b4fd chore(deps-dev): bump prettier from 2.3.0 to 2.3.1 (#2765)
    • bb7c9d3 feat: new CLI options API for serve (#2754)
    • 557ad05 fix: not found module after ask installation (#2761)
    • c8fef37 chore(deps-dev): bump @​typescript-eslint/parser
    • 368778d fix: add node 16 to CI (#2760)
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.

    If all status checks pass Dependabot will automatically merge this pull request.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language
    • @dependabot badge me will comment on this PR with code to add a "Dependabot enabled" badge to your readme

    Additionally, you can set the following in your Dependabot dashboard:

    • Update frequency (including time of day and day of week)
    • Pull request limits (per update run and/or open at any time)
    • Automerge options (never/patch/minor, and dev/runtime dependencies)
    • Out-of-range updates (receive only lockfile updates, if desired)
    • Security updates (receive only security updates, if desired)
    dependencies javascript 
    opened by dependabot-preview[bot] 0
  • Upgrade to GitHub-native Dependabot

    Upgrade to GitHub-native Dependabot

    Dependabot Preview will be shut down on August 3rd, 2021. In order to keep getting Dependabot updates, please merge this PR and migrate to GitHub-native Dependabot before then.

    Dependabot has been fully integrated into GitHub, so you no longer have to install and manage a separate app. This pull request migrates your configuration from Dependabot.com to a config file, using the new syntax. When merged, we'll swap out dependabot-preview (me) for a new dependabot app, and you'll be all set!

    With this change, you'll now use the Dependabot page in GitHub, rather than the Dependabot dashboard, to monitor your version updates, and you'll configure Dependabot through the new config file rather than a UI.

    You have configured automerging on this repository. There is no automerging support in GitHub-native Dependabot, so these settings will not be added to the new config file. Several 3rd-party GitHub Actions and bots can replicate the automerge feature.

    If you've got any questions or feedback for us, please let us know by creating an issue in the dependabot/dependabot-core repository.

    Learn more about migrating to GitHub-native Dependabot

    Please note that regular @dependabot commands do not work on this pull request.

    dependencies 
    opened by dependabot-preview[bot] 1
  • Bump webpack from 4.46.0 to 5.23.0 in /www

    Bump webpack from 4.46.0 to 5.23.0 in /www

    Bumps webpack from 4.46.0 to 5.23.0.

    Release notes

    Sourced from webpack's releases.

    v5.23.0

    Features

    • add parserOptions.url: "relative" option
      • Allows to generate relative URLs from new URL (e. g. for SSG/SSR)

    Bugfixes

    • fixes for electron target
      • electron has importScripts in worker
      • only choose a chunkLoading which fits to the chunkFormat
      • prefer fetch wasm loading over node wasm loading
    • fix regression when combining library + runtimeChunk + node target

    Developer Experience

    • export MultiStats type

    v5.22.0

    Features

    • generate shorter output code for JSON data by using a '...' string instead of "..." (only affects output side when not minimized)
    • the dependencies configuration option now works for watch builds too
      • It will build compilation when any of dependencies has changed
      • It will wait for compiling until all of dependencies have finished
    • add parallelism config option on the array of configurations to limit the compilers that are running in parallel

    Developer Experience

    • add hints (Did you mean ...) to resolve errors when
      • resolving fails due to enforceExtension
      • relative request is missing leading ./
    • when all modules of an entrypoint fail resolving and another entrypoints depend(s)On it, webpack no longer crashes with a weird error
    • add hint to stats how to get details about errors/warnings in child compilations
    • improve error message for lazyCompilation when using IE11

    Bugfixes

    • async entries e.g. for Workers are now implicitly flagged as "having side effects" even if they are affects by "sideEffects": false
      • in future we might add a warning for this
    • avoid crash when using this.loadModule (loader) and the loaded module has errors
    • refactor libraries to inline exporting code into runtime to allow using with output.iife: false
    • fix invalid code when using define for local modules and arrow functions are supported
    • fix missing runtime requirement for system.js context
    • fix parsing of define function, which missed declarations before
    • avoid unnecessary calls to loaders when serializer are already registered
    • fix inner graph analysis for exports when export { x } is before pure declaration const x = /*#__PURE__*/ f()
    • fix hashing order of runtime chunks when there are async entries involved

    Contribution

    ... (truncated)

    Commits
    • 7774d7e 5.23.0
    • cdac669 Merge pull request #12710 from webpack/bugfix/library-runtime-chunk
    • cc6f3d9 fix regression when combining library + runtimeChunk + node target
    • 61dbb57 Merge pull request #12590 from chenxsan/feature/export-MultiStats-type
    • 5849090 Merge pull request #12696 from webpack/dependabot/npm_and_yarn/eslint-plugin-...
    • 32bd1a2 Merge pull request #12692 from dnalborczyk/spellcheck
    • 327fa43 chore(deps-dev): bump eslint-plugin-jsdoc from 31.6.1 to 32.0.2
    • 05768d9 Merge pull request #12695 from webpack/feature/relative-url
    • 5d57777 add parser.url: "relative" option
    • bd5e4dd chore: move word to cspell.json
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.

    If all status checks pass Dependabot will automatically merge this pull request.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language
    • @dependabot badge me will comment on this PR with code to add a "Dependabot enabled" badge to your readme

    Additionally, you can set the following in your Dependabot dashboard:

    • Update frequency (including time of day and day of week)
    • Pull request limits (per update run and/or open at any time)
    • Automerge options (never/patch/minor, and dev/runtime dependencies)
    • Out-of-range updates (receive only lockfile updates, if desired)
    • Security updates (receive only security updates, if desired)
    dependencies javascript 
    opened by dependabot-preview[bot] 0
Owner
Rust and WebAssembly
🦀 + 🕸️ = 💖
Rust and WebAssembly
Conway's Game of Life, visualised using Rust and WebAssembly

Game of Life, using Rust and WebAssembly Tutorial Built with ?? ?? by The Rust and WebAssembly Working Group About Conway's Game of Life, which consis

Vedant R. Nimje 2 Jul 11, 2023
2-player game made with Rust and "ggez" engine, based on "Conway's Game of Life"

fight-for-your-life A 2-player game based on the "Conway's Game of Life", made with Rust and the game engine "ggez". Create shapes on the grid that wi

Petros 3 Oct 25, 2021
Conway's Game of Life implemented for Game Boy Advance in Rust

game-of-life An implementation of a Conway's Game of Life environment on GBA. The ultimate game should have two modes: Edit and Run mode which can be

Shane Snover 1 Feb 16, 2022
A quick and dirty Space Invaders type game in Bevy, with attached tutorial.

This article is in-development and will be released in full form soon. It'll appear on Medium (my publisher likes that), with this as a the accompanyi

Herbert 17 Oct 18, 2022
Extreme Bevy is what you end up with by following my tutorial series on how to make a low-latency p2p web game.

Extreme Bevy Extreme Bevy is what you end up with by following my tutorial series on how to make a low-latency p2p web game. There game can be played

Johan Klokkhammer Helsing 39 Jan 5, 2023
A first-time implementation of Conway's Game of Life in Rust: Adventure and Commentary

A Commentary on Life This project documents the process and final result of my first-ever attempt at implementing Conway's Game of Life. I'll be using

Avery R. 2 Feb 25, 2022
Game of life implementation written in Rust.

Game of life Game of life implementation written in Rust. Part of my journey in learning Rust. Pattern files The patterns are based on the example pat

Hashem Hashem 2 Nov 17, 2022
Conway's game of life written in Rust.

This is my implementation of Conway's game of life to get my hands dirty with Rust. Rules of the game: Any live cell with two or three live neighbors

null 0 Apr 9, 2022
This is an implementation of "Game of Life" by Horton Conway in Rust using raylib.

Game-of-Life This is an implementation of "Game of Life" by Horton Conway in Rust using raylib. What is Game of Life? The Game of Life, also known sim

Berkay Sahin 3 Dec 26, 2022
Game Of Life using webgpu, written in Rust

Game of Life using webgpu ✨ Description This is the implementation of the tutorial Your first WebGPU app in Rust where we're using webgpu to implement

BADR 4 Aug 17, 2023
A game of life🔬 simulator on an infinite♾️ plane

game-of-life A game of life ?? simulator on an infinite ♾️ plane NOTE: This is a toy project! I did this just for fun, not as a packaged product. Abou

adam mcdaniel 8 Jul 17, 2022
A simple implementation of Conway's Game of Life using Fully homomorphic Encryption

Game of life using Fully homomorphic encryption A simple implementation of Conway's Game of Life built using Zama's concrete-boolean library. Build Ju

Florent Michel 4 Oct 3, 2022
An implementation of the Game of Life

Lifeee – An implementation of the Game of Life I realized this application to keep learning Rust, discover the front-end library Yew, and because I’m

Sébastien Castiel 58 Nov 23, 2022
A parser for Conway’s Game of Life Lexicon

Lexicon A convenient interface to get patterns from the Lexicon and use them in your implementation of Conway’s Game of Life. Used by Lifeee, my web a

Sébastien Castiel 1 Nov 13, 2021
A Conway's Game Of Life application for the gnome desktop

Game Of Life A simple Conway's game of life simulator for the Gnome desktop Installation The easieast way to install is from Flathub. Using Gnome Buil

Andrea Coronese 7 Dec 30, 2022
Rustification of the excellent GD Script Action RPG Tutorial by youtuber HeartBeast

Godot Action RPG w/Rust A GDNative implementation in Rust of youtuber HeartBeast 's great step-by-step turoial series creating a Godot Action RPG, usi

Nejat 14 Apr 14, 2022
Life simulation written in rust

Life simulation written in Rust, inspired by this very old screensaver: https://sourceforge.net/projects/primlife/ Demo: https://joelthelion.github.io

Joel Schaerer 214 Dec 14, 2022
Solana Game Server is a decentralized game server running on Solana, designed for game developers

Solana Game Server* is the first decentralized Game Server (aka web3 game server) designed for game devs. (Think web3 SDK for game developers as a ser

Tardigrade Life Sciences, Inc 16 Dec 1, 2022
An opinionated, monolithic template for Bevy with cross-platform CI/CD, native + WASM launchers, and managed cross-platform deployment.

??️ Bevy Shell - Template An opinionated, monolithic template for Bevy with cross-platform CI/CD, native + WASM launchers, and managed cross-platform

Kurbos 218 Dec 30, 2022