Showing
9 changed files
with
0 additions
and
210 deletions
www/.bin/create-wasm-app.js
deleted
100755 → 0
1 | -#!/usr/bin/env node | ||
2 | - | ||
3 | -const { spawn } = require("child_process"); | ||
4 | -const fs = require("fs"); | ||
5 | - | ||
6 | -let folderName = '.'; | ||
7 | - | ||
8 | -if (process.argv.length >= 3) { | ||
9 | - folderName = process.argv[2]; | ||
10 | - if (!fs.existsSync(folderName)) { | ||
11 | - fs.mkdirSync(folderName); | ||
12 | - } | ||
13 | -} | ||
14 | - | ||
15 | -const clone = spawn("git", ["clone", "https://github.com/rustwasm/create-wasm-app.git", folderName]); | ||
16 | - | ||
17 | -clone.on("close", code => { | ||
18 | - if (code !== 0) { | ||
19 | - console.error("cloning the template failed!") | ||
20 | - process.exit(code); | ||
21 | - } else { | ||
22 | - console.log("🦀 Rust + 🕸 Wasm = ❤"); | ||
23 | - } | ||
24 | -}); |
www/.gitignore
deleted
100644 → 0
www/README.md
deleted
100644 → 0
1 | -<div align="center"> | ||
2 | - | ||
3 | - <h1><code>create-wasm-app</code></h1> | ||
4 | - | ||
5 | - <strong>An <code>npm init</code> template for kick starting a project that uses NPM packages containing Rust-generated WebAssembly and bundles them with Webpack.</strong> | ||
6 | - | ||
7 | - <p> | ||
8 | - <a href="https://travis-ci.org/rustwasm/create-wasm-app"><img src="https://img.shields.io/travis/rustwasm/create-wasm-app.svg?style=flat-square" alt="Build Status" /></a> | ||
9 | - </p> | ||
10 | - | ||
11 | - <h3> | ||
12 | - <a href="#usage">Usage</a> | ||
13 | - <span> | </span> | ||
14 | - <a href="https://discordapp.com/channels/442252698964721669/443151097398296587">Chat</a> | ||
15 | - </h3> | ||
16 | - | ||
17 | - <sub>Built with 🦀🕸 by <a href="https://rustwasm.github.io/">The Rust and WebAssembly Working Group</a></sub> | ||
18 | -</div> | ||
19 | - | ||
20 | -## About | ||
21 | - | ||
22 | -This template is designed for depending on NPM packages that contain | ||
23 | -Rust-generated WebAssembly and using them to create a Website. | ||
24 | - | ||
25 | -* Want to create an NPM package with Rust and WebAssembly? [Check out | ||
26 | - `wasm-pack-template`.](https://github.com/rustwasm/wasm-pack-template) | ||
27 | -* Want to make a monorepo-style Website without publishing to NPM? Check out | ||
28 | - [`rust-webpack-template`](https://github.com/rustwasm/rust-webpack-template) | ||
29 | - and/or | ||
30 | - [`rust-parcel-template`](https://github.com/rustwasm/rust-parcel-template). | ||
31 | - | ||
32 | -## 🚴 Usage | ||
33 | - | ||
34 | -``` | ||
35 | -npm init wasm-app | ||
36 | -``` | ||
37 | - | ||
38 | -## 🔋 Batteries Included | ||
39 | - | ||
40 | -- `.gitignore`: ignores `node_modules` | ||
41 | -- `LICENSE-APACHE` and `LICENSE-MIT`: most Rust projects are licensed this way, so these are included for you | ||
42 | -- `README.md`: the file you are reading now! | ||
43 | -- `index.html`: a bare bones html document that includes the webpack bundle | ||
44 | -- `index.js`: example js file with a comment showing how to import and use a wasm pkg | ||
45 | -- `package.json` and `package-lock.json`: | ||
46 | - - pulls in devDependencies for using webpack: | ||
47 | - - [`webpack`](https://www.npmjs.com/package/webpack) | ||
48 | - - [`webpack-cli`](https://www.npmjs.com/package/webpack-cli) | ||
49 | - - [`webpack-dev-server`](https://www.npmjs.com/package/webpack-dev-server) | ||
50 | - - defines a `start` script to run `webpack-dev-server` | ||
51 | -- `webpack.config.js`: configuration file for bundling your js with webpack | ||
52 | - | ||
53 | -## License | ||
54 | - | ||
55 | -Licensed under either of | ||
56 | - | ||
57 | -* Apache License, Version 2.0, ([LICENSE-APACHE](LICENSE-APACHE) or http://www.apache.org/licenses/LICENSE-2.0) | ||
58 | -* MIT license ([LICENSE-MIT](LICENSE-MIT) or http://opensource.org/licenses/MIT) | ||
59 | - | ||
60 | -at your option. | ||
61 | - | ||
62 | -### Contribution | ||
63 | - | ||
64 | -Unless you explicitly state otherwise, any contribution intentionally | ||
65 | -submitted for inclusion in the work by you, as defined in the Apache-2.0 | ||
66 | -license, shall be dual licensed as above, without any additional terms or | ||
67 | -conditions. |
www/bootstrap.js
deleted
100644 → 0
www/index.html
deleted
100644 → 0
1 | -<!DOCTYPE html> | ||
2 | -<html> | ||
3 | - <head> | ||
4 | - <meta charset="utf-8"> | ||
5 | - <title>wasm-game-of-life!</title> | ||
6 | - <style> | ||
7 | - body { | ||
8 | - position: absolute; | ||
9 | - top: 0; | ||
10 | - left: 0; | ||
11 | - width: 100%; | ||
12 | - height: 100%; | ||
13 | - display: flex; | ||
14 | - flex-direction: column; | ||
15 | - align-items: center; | ||
16 | - justify-content: center; | ||
17 | - } | ||
18 | - </style> | ||
19 | - </head> | ||
20 | - <body> | ||
21 | - <canvas id="view3d"></canvas> | ||
22 | - <script src="./bootstrap.js"></script> | ||
23 | - </body> | ||
24 | -</html> |
www/index.js
deleted
100644 → 0
1 | -import { View3d } from "wasm-game-of-life"; | ||
2 | -import { memory } from "wasm-game-of-life/wasm_game_of_life_bg"; | ||
3 | - | ||
4 | -// 3D canvas stuff | ||
5 | -const view3d = View3d.new(300, 300); | ||
6 | - | ||
7 | -const view3d_canvas = document.getElementById("view3d"); | ||
8 | -view3d_canvas.width = view3d.width(); | ||
9 | -view3d_canvas.height = view3d.height(); | ||
10 | -const view3d_ctx = view3d_canvas.getContext('2d'); | ||
11 | - | ||
12 | -const view3d_renderLoop = () => { | ||
13 | - view3d.update(); | ||
14 | - drawView3d(); | ||
15 | - | ||
16 | - requestAnimationFrame(view3d_renderLoop); | ||
17 | -} | ||
18 | - | ||
19 | -const drawView3d = () => { | ||
20 | - const view3d_imagePtr = view3d.image(); | ||
21 | - const view3d_image = new ImageData( | ||
22 | - new Uint8ClampedArray( memory.buffer | ||
23 | - , view3d.image() | ||
24 | - , view3d.width() * view3d.height() * 4 ) | ||
25 | - , view3d.width() | ||
26 | - , view3d.height() ); | ||
27 | - | ||
28 | - view3d_ctx.putImageData(view3d_image, 0, 0); | ||
29 | -} | ||
30 | - | ||
31 | -// start everything ... | ||
32 | -view3d.update(); | ||
33 | -drawView3d(); | ||
34 | -requestAnimationFrame(view3d_renderLoop); |
www/package-lock.json
deleted
100644 → 0
This diff could not be displayed because it is too large.
www/package.json
deleted
100644 → 0
1 | -{ | ||
2 | - "name": "create-wasm-app", | ||
3 | - "version": "0.1.0", | ||
4 | - "description": "create an app to consume rust-generated wasm packages", | ||
5 | - "main": "index.js", | ||
6 | - "bin": { | ||
7 | - "create-wasm-app": ".bin/create-wasm-app.js" | ||
8 | - }, | ||
9 | - "scripts": { | ||
10 | - "build": "webpack --config webpack.config.js", | ||
11 | - "start": "webpack-dev-server" | ||
12 | - }, | ||
13 | - "repository": { | ||
14 | - "type": "git", | ||
15 | - "url": "git+https://github.com/rustwasm/create-wasm-app.git" | ||
16 | - }, | ||
17 | - "keywords": [ | ||
18 | - "webassembly", | ||
19 | - "wasm", | ||
20 | - "rust", | ||
21 | - "webpack" | ||
22 | - ], | ||
23 | - "author": "Ashley Williams <ashley666ashley@gmail.com>", | ||
24 | - "license": "(MIT OR Apache-2.0)", | ||
25 | - "bugs": { | ||
26 | - "url": "https://github.com/rustwasm/create-wasm-app/issues" | ||
27 | - }, | ||
28 | - "homepage": "https://github.com/rustwasm/create-wasm-app#readme", | ||
29 | - "devDependencies": { | ||
30 | - "wasm-game-of-life": "file:../pkg", | ||
31 | - "hello-wasm-pack": "^0.1.0", | ||
32 | - "webpack": "^4.29.3", | ||
33 | - "webpack-cli": "^3.1.0", | ||
34 | - "webpack-dev-server": "^3.1.5", | ||
35 | - "copy-webpack-plugin": "^5.0.0" | ||
36 | - }, | ||
37 | - "dependencies": { | ||
38 | - "wasm-game-of-life": "file:../pkg" | ||
39 | - } | ||
40 | -} |
www/webpack.config.js
deleted
100644 → 0
1 | -const CopyWebpackPlugin = require("copy-webpack-plugin"); | ||
2 | -const path = require('path'); | ||
3 | - | ||
4 | -module.exports = { | ||
5 | - entry: "./bootstrap.js", | ||
6 | - output: { | ||
7 | - path: path.resolve(__dirname, "dist"), | ||
8 | - filename: "bootstrap.js", | ||
9 | - }, | ||
10 | - mode: "development", | ||
11 | - plugins: [ | ||
12 | - new CopyWebpackPlugin(['index.html']) | ||
13 | - ], | ||
14 | -}; |
Please
register
or
login
to post a comment