Skip to content

Instantly share code, notes, and snippets.

#include "wasmer.h"
@bjfish
bjfish / source.c
Created March 3, 2019 04:35
Hello World C Wasm Example App
extern void print_str(char *ptr, int len);
int hello_wasm()
{
char *str = "Hello, World!";
print_str(str, 13);
return 0;
}
@bjfish
bjfish / wasmer-c-api-example.c
Last active March 3, 2019 04:34
Wasmer C API Example
#include <stdio.h>
#include "rust-build/src/wasmer-runtime-c-api/lib/runtime-c-api/wasmer.h"
#include <assert.h>
#include <stdint.h>
static print_str_called = false;
// Host function that will be imported into the Web Assembly Instance
void print_str(wasmer_instance_context_t *ctx, int32_t ptr, int32_t len)
{
@bjfish
bjfish / lib.rs
Created February 24, 2019 20:04
Hello World Rust Wasm Sample App
// Define a function that is imported into the module.
// By default, the "env" namespace is used.
extern "C" {
fn print_str(ptr: *const u8, len: usize);
}
// Define a string that is accessible within the wasm
// linear memory.
static HELLO: &'static str = "Hello, World!";
@bjfish
bjfish / main.rs
Last active January 25, 2019 01:20
Wasmer Rust Embedder App Example
extern crate wasmer_runtime;
use std::{fs::File, io::prelude::*, str};
use wasmer_runtime::{self as runtime, prelude::*};
fn main() {
// Read the wasm file produced by our sample application...
let mut wasm_file =
File::open("./wasm-sample-app/target/wasm32-unknown-unknown/release/wasm_sample_app.wasm")
@bjfish
bjfish / lib.rs
Created January 21, 2019 01:05
Wasmer Wasm Sample App
// Defines functions to import from "env" namespace
extern "C" {
fn print_str(ptr: *const u8, len: usize);
}
#[no_mangle]
pub extern fn hello_wasm(){
let message = "Hello World";
unsafe {
print_str(message.as_ptr(), message.len());
@bjfish
bjfish / index.html
Created April 25, 2018 20:32
Wasm Memory Visualization
<html><head>
<script src="https://cdnjs.cloudflare.com/ajax/libs/two.js/0.6.0/two.js"></script>
</head>
<body>
<div id="main"></div>
@bjfish
bjfish / index.html
Created April 25, 2018 17:49
GoL ASC Memory Visualzation index.html
<!DOCTYPE html>
<html>
<head>
<title>Conway's Game of Life - AssemblyScript</title>
<link rel="icon" href="http://assemblyscript.org/favicon.ico" type="image/x-icon" />
<meta name="viewport" content="user-scalable=0" />
<style>
/* html, body { height: 100%; margin: 0; overflow: hidden; color: #111; background: #fff; font-family: sans-serif; } */
/* body { border-top: 2px solid #bc18d4; }
h1 { padding: 18px 20px 20px; font-size: 12pt; margin: 0; }
@bjfish
bjfish / gist:5418c723e27b68183dd13c4316d519fc
Last active May 1, 2019 01:23
Rails & MySql2 rails error
ActionController::RoutingError (uninitialized constant ApplicationController):
app/controllers/welcome_controller.rb:2:in `<top (required)>'
ActionController::RoutingError: uninitialized constant ApplicationController
from /Users/bfish/Documents/railstest/skip_active_record/app/controllers/welcome_controller.rb:2:in `<top (required)>'
from /Users/bfish/Documents/gem_homes/nokogiri_gem_home/gems/activesupport-4.2.9/lib/active_support/inflector/methods.rb:261:in `const_get'
from /Users/bfish/Documents/gem_homes/nokogiri_gem_home/gems/activesupport-4.2.9/lib/active_support/inflector/methods.rb:261:in `block in constantize'
@bjfish
bjfish / update-mri-cext.rb
Created September 30, 2017 16:44
C ext header patching tool
# Copyright (c) 2017 Oracle and/or its affiliates. All rights reserved.
# This code is released under a tri EPL/GPL/LGPL license. You can use it,
# redistribute it and/or modify it under the terms of the:
#
# Eclipse Public License version 1.0
# GNU General Public License version 2
# GNU Lesser General Public License version 2.1
# Run with ruby tool/update-mri-cext.rb