diff --git a/src/emulator/image/build.sh b/src/emulator/image/build.sh index 8e3a45b61..d0b1f8321 100755 --- a/src/emulator/image/build.sh +++ b/src/emulator/image/build.sh @@ -41,5 +41,9 @@ sudo losetup -d "$loop" rm "$OUT_ROOTFS_TAR" rm -rf "$OUT_ROOTFS_MNT" +cd "$IMAGES" +brotli -q 6 rootfs.bin +cd - + echo "done! created" sudo chown -R $USER:$USER $IMAGES/boot diff --git a/src/emulator/package.json b/src/emulator/package.json index 3879a4727..864649dad 100644 --- a/src/emulator/package.json +++ b/src/emulator/package.json @@ -12,5 +12,8 @@ "description": "", "devDependencies": { "html-webpack-plugin": "^5.6.0" + }, + "dependencies": { + "brotli-dec-wasm": "^2.3.0" } } diff --git a/src/emulator/src/main.js b/src/emulator/src/main.js index 6966b9e2f..d8c1d1801 100644 --- a/src/emulator/src/main.js +++ b/src/emulator/src/main.js @@ -13,6 +13,8 @@ const { DataBuilder, } = require("../../puter-wisp/src/exports"); +const brotliCJS = require('brotli-dec-wasm'); + const status = { ready: false, }; @@ -132,9 +134,17 @@ window.onload = async function() } const resp = await fetch( - './image/build/rootfs.bin' + './image/build/rootfs.bin.br' ); const arrayBuffer = await resp.arrayBuffer(); + + const brotli = await brotliCJS.default; + + const utf8Array = new Uint8Array(arrayBuffer); + console.log('whats in here??', brotli); + const decompressed = brotli.decompress(utf8Array); + const decompressedArrayBuffer = decompressed.buffer; + var emulator = window.emulator = new V86({ wasm_path: PATH_V86 + "/v86.wasm", memory_size: 512 * 1024 * 1024, @@ -164,7 +174,7 @@ window.onload = async function() // url: "./image/build/rootfs.bin", // }, hda: { - buffer: arrayBuffer, + buffer: decompressedArrayBuffer, // url: './image/build/rootfs.bin', async: true, // size: 1073741824,