Skip to content

Instantly share code, notes, and snippets.

View andrei-cacio's full-sized avatar
👀
🤔 👀

Andrei Cacio andrei-cacio

👀
🤔 👀
View GitHub Profile
fetch('memory-access.gc.wasm')
.then(r => r.arrayBuffer())
.then(arrayBuff => WebAssembly.instantiate(arrBuff, {}))
.then(rustWasm => console.log(rustWasm));
// Object { module: WebAssembly.Module, instance: WebAssembly.Instance }
const typedArr = new Uint32Array(arrayBuffer, 0, 4);
const arr = [...typedArray];
// [100, 200, 300, 400]
@andrei-cacio
andrei-cacio / vec.rs
Last active May 18, 2018 08:49
Rust vector to JS example
#[no_mangle]
pub fn simple_arr() -> *mut i32 {
let vec = Box::new([100, 200, 300, 400]);
Box::into_raw(vec) as *mut i32
}
fn main() { }
@andrei-cacio
andrei-cacio / rust-wasm.sh
Created May 17, 2018 11:11
Rust + Wasm setup
rustup default nightly
rustup target add wasm32-unknown-unknown --toolchain nightly
cargo install wasm-gc
@andrei-cacio
andrei-cacio / distil.js
Created May 16, 2018 14:28
The desired output of distil-wasm
async function distil(imgPath, nrOfPalettes = 2) {
const wasmModule = await compile('distil.wasm');
const { imgBufferLocation, length } = await readImgIntoMemory(imgPath);
const paletteBuffer = wasmModule.exports.distil(imgBufferLocation, length);
console.log(bufferToHex(paletteBuffer, nrOfPalettes));
}
// -> ['#ff1122', '#jjkkll']
import eventEmiter, { EVENTS } from './core/bus';
function authenticate(user, password) {
return new Promise((resolve, reject) => {
eventEmitter.once(EVENTS.AUTH.SUCCESS, resolve);
eventEmitter.once(EVENTS.AUTH.FAILED, reject);
eventEmitter.trigger(EVENTS.AUTH.ATTEMPT, { user, pass });
});
}
import eventEmiter, { EVENTS } from './core/bus';
function authenticate(user, password) {
return new Promise((resolve, reject) => {
eventEmitter.on(EVENTS.AUTH.SUCCESS, resolve);
eventEmitter.on(EVENTS.AUTH.FAILED, reject);
eventEmitter.trigger(EVENTS.AUTH.ATTEMPT, { user, pass });
});
}
import EventEmitter2 from 'eventemitter2';
const appBus = new eventEmitter();
const EVENTS = {
AUTH: {
SUCCESS: 'AUTH.SUCCESS',
FAILED: 'AUTH.FAILED',
ATTEMPT: 'AUTH.ATTEMPT',
};
import eventEmiter, { EVENTS } from './core/bus';
eventEmitter.on(EVENTS.AUTH.SUCCESS, () => {});
eventEmitter.on(EVENTS.AUTH.FAILED, () => {});
eventEmitter.trigger(EVENTS.AUTH.ATTEMPT, { user, pass });
@andrei-cacio
andrei-cacio / fetch-request-cookies.js
Last active December 30, 2017 17:39
Fetch with cookies sample
const someRequest = new Request('/api/v1/logout');
someRequest.credentials = 'same-origin';
fetch(someRequest)
.then(response => console.log(response));